Asp.net mvc 处理.NETMVC中需要访问作用域的布局的正确方法
我在现有的.NETMVC应用程序中使用angular。我们所有的.cshtml视图都基于一个部分_Layout.cshtml。我们在这个布局中生成了一个左侧边栏。根据web路由,左侧栏中的内容将发生变化 问题是在某一点上,我需要从$scope获取信息并将其放入_布局中的侧栏中。我知道的唯一方法是进入布局,并用ng应用程序包装它。大概是这样的: _布局:Asp.net mvc 处理.NETMVC中需要访问作用域的布局的正确方法,asp.net-mvc,angularjs,Asp.net Mvc,Angularjs,我在现有的.NETMVC应用程序中使用angular。我们所有的.cshtml视图都基于一个部分_Layout.cshtml。我们在这个布局中生成了一个左侧边栏。根据web路由,左侧栏中的内容将发生变化 问题是在某一点上,我需要从$scope获取信息并将其放入_布局中的侧栏中。我知道的唯一方法是进入布局,并用ng应用程序包装它。大概是这样的: _布局: @(ViewBag.HotList != null ? " ng-app=hotListApp" : "") if (ViewBag.Hotl
@(ViewBag.HotList != null ? " ng-app=hotListApp" : "")
if (ViewBag.Hotlist != null)
{
<ul ng-controller="someCtrl" id="hotlist" class="hotlist">
</ul>
}
@RenderBody()
@(ViewBag.HotList!=null?“ng app=hotListApp”:“
如果(ViewBag.Hotlist!=null)
{
}
@RenderBody()
但这太乱了,我有很多页。我将不得不为我的大多数页面做这个ng应用程序决策。有没有更好的方法来区分这一点?其他人是如何解决这个问题的?我们将ng应用程序置于body tag级别:
<body id="ng-app" ng-app="app">
通过这种方式,您可以与任何UI元素进行交互,无论它们位于何处。你可能想考虑把你的列表变成一个角度指令。然后,您可以将属性放在指令上,以便在侧边栏的控制器中与之交互。您可能看起来像:
<div ng-controller="sidebarController"
<HotList data="myData" />
</div>
你得忍受我,我对angularjs一无所知。听起来您希望布局能够理解javascript($scope)中的某些内容,而在将视图呈现给客户端时,这是不可能的。什么是hotListApp?这是控制器还是视图(操作/方法)?我们将使用您提供的相同解决方案。这似乎是最好的做法。