ASP.Net MVC中的Angular.js - 需要重新加载页面两次

时间:2014-12-18 13:45:08

标签: asp.net-mvc angularjs

我将问题最小化到这种简单的复制。创建新的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

请帮我理解这个..

1 个答案:

答案 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