我正在使用
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)
> 64位Chrome(版本37.0.2062.94)
> Firefox(31.0)
> Safari(版本7.0.5(9537.77.4))