我将问题最小化到这种简单的复制。创建新的Asp.net MVC应用程序,通过nugget添加Angular.js。
_Layout.cshtml:
<head>
<!-- Other stuff -->
@RenderSection("JavascriptInHead", required: false)
</head>
_Index.cshtml
@section JavascriptInHead {
<script src="~/Scripts/angular.min.js"></script>
}
<div ng-app>
{{2 + 2}}
</div>
所以这很有效(显然),但是当我点击,说“关于”或“联系人”菜单重新加载另一个视图然后回到主页时,我得到了
{{2 + 2}}
然后我点击页面重新加载两次,我得到了
4
请帮我理解这个..
答案 0 :(得分:1)
文档加载时的Angular bootstraps。因此,如果要在不执行整页刷新的情况下将包含角度的html加载到页面中,则需要手动引导角度。尝试将此脚本添加到您的部分页面:
angular.element(document).ready(function() {
angular.bootstrap(document);
});
顺便说一下,我非常感谢你发布一个简洁的例子而不是实际项目中的100行代码。但是,如果您的实际项目有一个应用名称,那就像这样......
<div ng-app="myApp">
然后你放入你的部分页面的js应该是这样的......
angular.element(document).ready(function() {
angular.bootstrap(document, ['myApp']);
});
可以在此处找到手动引导Angular的文档:https://docs.angularjs.org/guide/bootstrap