Javascript AngularJS动态菜单没有';当项目数量大于;10
我正在使用MVC项目创建一个简单的AngularJS页面,该页面从数据库表中检索项目并将其显示为动态菜单 只要项目数少于10,列表就可以完美运行 当我试图解决这个问题时,我给出了一个解释,即AngularJS不将数字理解为数字!所以这种比较并不恰当 更具体地说,我有下表: 菜单应列为:Javascript AngularJS动态菜单没有';当项目数量大于;10,javascript,angularjs,html,Javascript,Angularjs,Html,我正在使用MVC项目创建一个简单的AngularJS页面,该页面从数据库表中检索项目并将其显示为动态菜单 只要项目数少于10,列表就可以完美运行 当我试图解决这个问题时,我给出了一个解释,即AngularJS不将数字理解为数字!所以这种比较并不恰当 更具体地说,我有下表: 菜单应列为: Page1 - Page2 - Page3 - Page4 - Page5 - Page6 - Page7 - Page8 - Page9 | | |
Page1 - Page2 - Page3 - Page4 - Page5 - Page6 - Page7 - Page8 - Page9
| |
| |
| Page14
| Page15
|
|
Page10 - Page11 - Page12 - Page12
|
|
Page13
但我并没有真正表现出我所期待的
- 在Page1下,我有Page13
- Page13也列在Page2
namespace MVCAngularDynamicMenu.Controllers
{
public class HomeController : Controller
{
public ActionResult Index() {
return View();
}
public JsonResult GetSiteMenu()
{
using (MyDatabaseEntities dc = new MyDatabaseEntities())
{
var menu = dc.SiteMenus.ToList();
return new JsonResult { Data = menu, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
}
}
}
var app = angular.module('MyApp', []);
app.controller('menuController', ['$scope', '$http', function ($scope, $http) {
$scope.SiteMenu = [];
$http.get('/home/GetSiteMenu').then(function (response) {
$scope.SiteMenu = response.data;
}, function (error) {
alert('Error');
})
}])
JS控制器
namespace MVCAngularDynamicMenu.Controllers
{
public class HomeController : Controller
{
public ActionResult Index() {
return View();
}
public JsonResult GetSiteMenu()
{
using (MyDatabaseEntities dc = new MyDatabaseEntities())
{
var menu = dc.SiteMenus.ToList();
return new JsonResult { Data = menu, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
}
}
}
var app = angular.module('MyApp', []);
app.controller('menuController', ['$scope', '$http', function ($scope, $http) {
$scope.SiteMenu = [];
$http.get('/home/GetSiteMenu').then(function (response) {
$scope.SiteMenu = response.data;
}, function (error) {
alert('Error');
})
}])
视图
<div ng-app="MyApp">
<div ng-controller="menuController">
<script type="text/ng-template" id="treeMenu">
<a href="{{menu.Url}}">{{menu.Name}}</a>
<ul ng-if="(SiteMenu | filter:{ParentID : menu.ID}).length > 0">
<li ng-repeat="menu in SiteMenu | filter:{ParentID : menu.ID}" ng-include="'treeMenu'"></li>
</ul>
</script>
<ul class="main-navigation">
<li ng-repeat="menu in SiteMenu | filter:{ParentID : 0}" ng-include="'treeMenu'"></li>
</ul>
</div>
同样,我怀疑问题在于将ID和PartnerID字段转换为字符串,而它们是int。但我不确定
getsitemunu
中的JSON是什么样子的?标记如何显示子菜单的子菜单?也许第13页列在第12页下面,但它看起来像是同一个垂直下拉列表。呈现的HTML是什么样子的?呈现的HTML在我所附的截图上。我将通过编辑我的帖子来发布JSON文件。这可能是您的过滤器不够严格的问题。在您的视图中,尝试添加strict: