Angular。值不起作用

时间:2014-02-13 14:08:32

标签: javascript angularjs

Angular的新手,我正试图弄清楚价值。我试图保存一个值,我可以在以后注入我的控制器,但由于某种原因,它打破了。如果你运行plnkr样本,它将工作,代码到达控制器。如果您注释掉第68行并取消注释67,则会破坏应用程序。第41行,我只是设置了一个值,这是我想要传递给我的控制器的。

为什么这不起作用?

http://plnkr.co/edit/SnOm2r?p=options

2 个答案:

答案 0 :(得分:1)

没有AppConfig ...如果要注入AppConfig,它必须存在于某处,指令,服务,工厂,SOMETHING。您目前没有加载一个。

答案 1 :(得分:0)

您的问题是时间问题。控制器在设置值之前创建,因此它无权访问。

如果您这样创建:

var mainApp = angular.module("Test", ["ui.router"]);
mainApp.value("AppConfig", 1.0); 

然后您可以立即访问它。如果你必须异步设置它(即你计划将它设置为调用的结果),那么最好的方法可能是注入$ injector而不是AppConfig。然后你可以这样做:

if ($injector.has("AppConfig")) { value = $injector.get("AppConfig"); }

更好的办法可能是将其转移到一个服务中,该服务的承诺可以在获取值后返回该值,然后将其缓存以供后续调用。