我使用$ scope。$ apply触发视图根据范围中已更改的变量进行更新。但是,我在html中有另一行是ng-include,
<div data-ng-include data-ng-src="'views/partials/_menubar.html'"></div>
当我删除ng-include并用静态调用替换它时,没有错误。这是我所包含的模板:
<div class="menu" ng-controller="MenuController">
<div style="display: inline-block">
Hello!
</div>
<ul class="menu_dropdown">
<li class="menu_item">Test1</li>
<li class="menu_item">Test2</li>
<li class="menu_item">Test3</li>
</ul>
</div>
菜单控制器的代码是
app.controller('MenuController', function($scope) {
});
答案 0 :(得分:0)
ng-src
用于允许通常具有src(如锚点或图像)的元素仅在角度消化后应用src标记,而不是在ng-include
中包含模板。请参阅ng-include文档和ng-src文档。
使用ng-include
指定src的安全方法如下:
<div data-ng-include="src='views/partials/_menubar.html'"></div>
或
<div data-ng-include="'views/partials/_menubar.html'"></div>
如果你必须分别拥有src,那就是data-src
而不是data-ng-src
:
<div data-ng-include data-src="'views/partials/_menubar.html'"></div>
请参阅plnkr。
编辑:要解决您的错误消息..如果您将一个函数绑定到每次调用它时更改的范围,您将看到该消息。
例如,这会导致这样的错误:
// controller
$scope.getQuote = function(){
return 'someViewName' + Math.ceil(Math.random() * 10) + '.html';
};
// view
<div data-ng-include="{{getQuote}}"></div>
答案 1 :(得分:0)
ng-include的问题实际上是一个红鲱鱼。真正的问题是尝试更改window.history
,如线程here中所示。我的猜测是因为ng-include指令在尝试获取资源时引用了$ location。