使用ng-strict-di时,AngularJS 1.3与ngbp框架不会在chrome浏览器
我正在使用
ngbp framework(以前的ng样板)在AngularJS网络应用程序,默认情况下使用AngularJS 1.2.该项目处于早期阶段,所以我们正在尝试使用AngularJS 1.3而不是1.2,因为它有一些很好的功能,我们想使用.我们也在假设AngularJS 1.3可能是我们上线时的发行版本.
所以我只是在bower.json文件中切换AngularJS版本号,除了启用严格依赖注入(ng-strict-di)之外,Chrome,Safari和Firefox中的所有内容都可以正常工作.当严格的DI模式打开时,我会收到以下错误(more detail here),但它只发生在Chrome(FF& Safari两者仍然按预期的情况下工作). Failed to instantiate module ng due to: Error: [$injector:strictdi] function($provide) is not using explicit annotation and cannot be invoked in strict mode http://errors.angularjs.org/1.3.0-build.3121+sha.a4520a7/...) at http://localhost:8080/assets/ngbp-0.3.2.js:87:12 at annotate (http://localhost:8080/assets/ngbp-0.3.2.js:3352:17) at Object.invoke (http://localhost:8080/assets/ngbp-0.3.2.js:4036:21) at runInvokeQueue (http://localhost:8080/assets/ngbp-0.3.2.js:3964:35) at http://localhost:8080/assets/ngbp-0.3.2.js:3973:11 at forEach (http://localhost:8080/assets/ngbp-0.3.2.js:338:20) at loadModules (http://localhost:8080/assets/ngbp-0.3.2.js:3954:5) at createInjector (http://localhost:8080/assets/ngbp-0.3.2.js:3894:11) at doBootstrap (http://localhost:8080/assets/ngbp-0.3.2.js:1494:20) at bootstrap (http://localhost:8080/assets/ngbp-0.3.2.js:1509:12 似乎由于某些原因,角度源代码本身不能进行严格的DI测试,因此不会在ngbp框架内的Chrome浏览器中加载.上述错误来自ngbp的新鲜克隆,唯一的变化是AngularJS(1.3)的版本,而不是我们实际的项目(尽管在这两种情况下都是相同的).我知道这个版本的ngbp并没有正式支持Angular 1.3,但是正如我所说的,这个应用程序似乎对这个变化很好,尽管这个测试失败了.我想知道有没有人可能有一些洞察到导致这个错误的原因,以及是否不明智地进行AngularJS 1.3和ngbp(版本:0.3.2)的组合?在ngbp中还有什么其他内容需要随AngularJS版本一起更改吗? 如果它有助于我通过cd ../bin在本地提供文件; http-server -p 8080.如果任何其他信息有助于让我知道,如果可能的话我很乐意提供. 谢谢你的时间. 编辑:如果它有助于我在OS X 10.9.4上使用以下浏览器版本进行测试: > Chrome(版本36.0.1985.143)
看起来你可能正在使用
batarang,它不能很好地与ng-strict-di.尝试从Google Chrome开发人员工具中禁用batarang,应用程序应该再次正常启动.
AngularJS batarang自v0.5.0以来现在支持ng-strict-di.此错误不应再发生. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |