Tried to load angular more than once
仅在最初加载页面时才得到警告。
由于此警告,我的绑定似乎无法正常工作。但是,当我重新加载页面时,我没有收到警告,所有内容似乎都已绑定并可以正常工作。
我没有使用任何路线或ui视图!(我看过其他SO帖子,但我认为它们不适用于我的情况)。
我仔细检查并确保只引用了Angular JS。在这一点上,我对Angular JS的使用非常简单。
我在布局/母版页中按此顺序引用了Angular JS-
jquery
jquery-ujs // Rails Unobtrusive jQuery Adapter
jquery-ui
angular
foundation // ZURB Foundation 6
turbolinks // Rails Turbolinks
这是我的Angular模板的样子-
<body ng-app="test">
<div ng-controller="TestController">
<div ng-init="items = <%= items.to_json %>">
<div ng-repeat="item in items">
<p ng-bind="item"></p>
</div>
</div>
</div>
</body>
items
是一个Rails对象,我基本上将其移交给Angular进行初始加载。
这是我在“布局”页面中的Javascript中的内容-
var app = angular.module('test', []);
这是我在“视图/内容”页面的Javascript中拥有的内容-
app.controller('TestController', ['$scope', '$http', '$compile', function($scope, $http, $compile){
// Some Functions
}]);
任何帮助将不胜感激!
注:该Tried to load angular more than once
警告显示出来的每一页我访问,除非我重新加载页面,我没有得到警告和绑定似乎正常工作。
这是截屏,访问了4个页面后未重新加载其中的任何一个-
重新加载页面后,我没有收到警告并且绑定正常工作。
我终于解决了这个问题。这不是Angular JS(或仅仅是Angular JS)的问题。
我删除了所有Angular JS代码,但仍收到警告。问题出在Turbolinks上。
我相信有2个解决方案。
我从“布局”页面的JS参考中删除了Turbolink,然后重新启动了服务器,一切似乎都正常进行。
这是我的javascript引用的样子-
jquery
jquery-ujs
jquery-ui
angular
foundation
如果您并未真正使用Turbolinks,则可以将其删除。
data-no-turbolink
属性我碰到了这个线程-在angularlinks中使用angularjs
但显然,标记的答案似乎对我不起作用。
正如其中一项评论所指出的那样,它的作用angular-1.0.6
不大。
虽然,答案之一还是建议data-no-turbolink
您在指定的标记处添加属性ng-app
。这就像一个魅力。
我的Angular版本是 1.4.8
因此,这是我的Angular模板现在的样子-
<body ng-app="test" data-no-turbolink>
<div ng-controller="TestController">
<div ng-init="items = <%= items.to_json %>">
<div ng-repeat="item in items">
<p ng-bind="item"></p>
</div>
</div>
</div>
</body>
希望这对某人有帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句