Angular中如何在控制器使用常量URL?控制台输出undefined问题
解决Angular中UrlConstant无法获取GlobalUrl的问题
哦,我知道问题出在哪了!你定义UrlConstant的方式不对——Angular的constant服务需要直接传入值或者对象,而不是一个返回对象的函数。
错误原因分析
你原来的代码是把一个函数赋值给了UrlConstant,所以当你在控制器里访问UrlConstant.GlobalUrl时,其实是在访问这个函数的GlobalUrl属性,而函数本身并没有这个属性,控制台自然输出undefined。
正确的常量定义方式
直接将包含URL的对象传给constant即可,这样UrlConstant本身就是这个对象,你可以直接访问它的属性:
// 正确定义UrlConstant app.constant('UrlConstant', { GlobalUrl: "http://localhost:5833/" });
在控制器中正确使用
现在在twoWayBinding控制器中注入UrlConstant后,就能直接获取GlobalUrl了:
app.controller('twoWayBinding', function(UrlConstant) { // 现在可以正常打印出URL了 console.log(UrlConstant.GlobalUrl); });
额外说明(如果需要动态生成URL)
如果你的URL需要动态计算(比如根据环境变量生成),可以用value服务或者provider,但constant的优势是可以注入到Angular的config阶段(比如路由配置里),如果只是静态URL,上面的写法完全足够。
内容的提问来源于stack exchange,提问作者user9430427
相关产品推荐
相关产品推荐

