部分视图中的ng-app和ng-controller无法正常工作

时间:2018-07-10 06:07:29

标签: c# angularjs asp.net-mvc razor angularjs-scope

我有一个通用的“布局”页面,在这里我叫_header部分页面,然后渲染主体。在渲染主体中,我有几个索引页,它们都有自己的ng-controller。当我为ng-controller部分创建_header时,我无法获得这些范围值,而是在正文部分获得了{{header.label}}

如何为部分页面和正文分别设置模块和控制器。我认为ng-appng-controller是造成问题的原因。任何帮助表示赞赏。

这是我的标签内

<div>
        @Html.Partial("_Header")
    </div>

@RenderBody()

2 个答案:

答案 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页面中。