我有一个通用的“布局”页面,在这里我叫_header
部分页面,然后渲染主体。在渲染主体中,我有几个索引页,它们都有自己的ng-controller。当我为ng-controller
部分创建_header
时,我无法获得这些范围值,而是在正文部分获得了{{header.label}}
。
如何为部分页面和正文分别设置模块和控制器。我认为ng-app
和ng-controller
是造成问题的原因。任何帮助表示赞赏。
这是我的标签内
<div>
@Html.Partial("_Header")
</div>
@RenderBody()
答案 0 :(得分:0)
如果您的ng-controller在@RenderBody内,则$ scope和controller在此标记之外无效。
$ rootScope在控制器之间共享,但是我认为这是一种不好的做法。
如果需要,可以嵌套控制器,但必须使用“ as”一词to refer the controllers
或者您可以使用自己的控制器创建指令
答案 1 :(得分:0)
您可能已经在执行此操作,但是由于问题没有提及,您有两个控制器,例如一个从您的标头加载,另一个从RenderBody加载:
<div class="header" ng-controller="headerController">
[other html here]
</div>
<div class="body" ng-controller="bodyController">
[other html here]
</div>
您也确实需要为这些添加控制器,这应该可以正常工作。您需要在父级添加ng-app
,可以在_Layout.cshtml页面中。