我建立了一个ASP.Net MVC 4 +角度网站, 我有一个上方菜单,点击一个链接将相应打开左侧菜单链接。 假设您单击第一个类别(1)上部菜单,左侧菜单将相应地显示1.1,1.2,1.3。
目前,我的上层菜单是绑定的,但是当点击链接(类别)时,左侧菜单上没有任何内容。 如果我发出警报,我会看到数据回到客户端。这不是数据问题。
任何想法的人? :-)
我的index.html包含2个部分:
<html>
<head>
<script src="Scripts/angular.min.js"></script>
<script src="app/controllers/menuController.js"></script>
<title></title>
</head>
<body ng-app="generalApp">
<div ng-include="'partials/topMenu.html'"></div>
<div ng-include="'partials/sideMenu.html'"></div>
</body>
</html>
我的上层菜单(不同的html文件 - 工作):
<div ng-controller="menuController">
<table>
<tr ng-repeat="category in menuCategories">
<td>
<a href="#" ng-click="loadSideMenu('7')">
{{category.CategoryName}}
</a>
</td>
</tr>
</table>
</div>
我的侧边菜单(不同的html文件):
<div ng-controller="menuController">
<table>
<tr ng-repeat="category in sideMenu">
<td>{{ category.CategoryName }}</td>
</tr>
</table>
</div>
我的js控制器代码:
(function (angular) {
var generalApp = angular.module('generalApp', [])
.controller('menuController', function ($scope, $http) {
$http.post("Home/GetArticleCategories").then(function (response) {
$scope.menuCategories = response.data;
});
$scope.loadSideMenu = function(category) {
$http.post("Home/GetSideMenu?a="+category).then(function (response) {
$scope.sideMenu = response.data;
});
};
});
}(angular));
我的mvc控制器在点击类别时返回伪造的链接:
public JsonResult GetSideMenu(int a)
{
var j = Json(new[]{
new { CategoryName = "link 1"},
new { CategoryName = "link 2"}
}
);
return j;
}
感谢任何想法!!!
答案 0 :(得分:0)
您必须将upper and left menus
放在同一ng-contoller
内。你做每个div的方式都有不同的 $ scope 。当您填充upper menu
中的数据时,upper menu
中的 $ scope 将保留列表,左侧不会注意到,因为它们有不同的 $范围强>
认为它们是同一种对象,但不同的实例!