【发布时间】:2016-01-11 08:36:35
【问题描述】:
我仅在最初加载页面时收到Tried to load angular more than once 警告。
由于这个警告,我的绑定似乎不起作用。但是当我重新加载页面时,我没有收到警告,而且一切似乎都绑定并正常工作。
我没有使用任何路由或 ui-view!(我看过其他 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 个页面后没有重新加载任何一个 -
重新加载页面后,我没有收到警告,并且绑定正常工作。
【问题讨论】:
-
检查
<div ng-repeat="item in <%= items.to_json %>"> -
抱歉!我在那条线上有一个
ng-init。修改了代码。 -
尽量避免在控制器内部使用
ng-init(docs.angularjs.org/api/ng/directive/ngInit),因为可以在控制器本身内赋值(通过$scope) -
@OlegMeleshko - 仍然收到警告并具有相同的行为
标签: jquery ruby-on-rails angularjs