加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

使用ng-strict-di时,AngularJS 1.3与ngbp框架不会在chrome浏览器

发布时间:2020-12-17 09:17:15 所属栏目:安全 来源:网络整理
导读:我正在使用 ngbp framework(以前的ng样板)在AngularJS网络应用程序,默认情况下使用AngularJS 1.2.该项目处于早期阶段,所以我们正在尝试使用AngularJS 1.3而不是1.2,因为它有一些很好的功能,我们想使用.我们也在假设AngularJS 1.3可能是我们上线时的发行版本.
我正在使用 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))

看起来你可能正在使用 batarang,它不能很好地与ng-strict-di.尝试从Google Chrome开发人员工具中禁用batarang,应用程序应该再次正常启动.

AngularJS batarang自v0.5.0以来现在支持ng-strict-di.此错误不应再发生.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读