为什么我的可排序角度ng-repeat菜单会在排序后的菜单项之后删除所有内容? https://github.com/RubaXa/Sortable/tree/dev 我正在使用RubaXa的带有角度的Sortable库来为自定义CMS创建一个可排序的菜单系统。当菜单被排序时,我有一个代码循环遍历所有菜单项,记录它们的位置并更新$ scope.menus。
var menus = {};
jQuery('.mb-draggable').has('a[href!="#"]').each(function(i, menuItem) {
var location = jQuery(menuItem).parent('[data-menu]').data('menu');
var position = jQuery('[data-menu="' + location + '"]').children('.mb-draggable').has('a[href!="#"]').index(jQuery(menuItem));
var id = jQuery(menuItem).data('id');
//findMenuById finds the index and data of the menu item that has a matching id
var found = theme.findMenuById($scope.menus, id);
var newData = found.data;
newData.location = location;
newData.position = position;
if(!menus[location]) {
menus[location] = [];
}
menus[location][position] = newData;
});
$scope.menus = menus;
console.log('$scope.menus', $scope.menus);
$scope.$apply();
$ scope.menus有两个不同的属性.main和.footer,每个属性都包含一系列菜单列表项。当我创建$ scope.menus =菜单时,$ scope.menus是正确的但视图突然摆脱了页脚菜单和编辑按钮,这些按钮不在ng-repeat内。 这是菜单的玉。
#navbar.navbar-collapse.collapse
ul#sortable-head.nav.navbar-nav(data-menu="main")
li(ng-repeat="menu in menus.main" class="mb-draggable {{menu.classes}}" ng-class="active(menu.url)" data-id="{{menu.id}}")
a(href="{{menu.url ? menu.url : /}}" target="{{menu.target}}").mb-editable.mb-main-list-a {{menu.title}}
li.drop-down
a(data-toggle="dropdown" href="#").dropdown-toggle
| Blog
span.caret
ul#sortable-footer.dropdown-menu(role="menu" data-menu="footer")
li(ng-repeat="menu in menus.footer" data-id="{{menu.id}}").mb-draggable
a(href="{{menu.url ? menu.url: /}}" target="{{menu.target}}").mb-editable.mb-footer-list-a {{menu.title}}
使用jQuery添加编辑按钮
jQuery('[data-menu]').append($compile('<li data-toggle="modal" data-target="#editMenuItemModal" ng-click="selectedMenu($event)" class="mb-edit-menu-item"><a href="#"> <i class="fa fa-pencil fa-lg"></i></a></li>')($scope));
答案 0 :(得分:0)
文档:https://github.com/RubaXa/Sortable/tree/dev#support-angularjs
P.S。如果问题不明确,请在jsbin.com上创建一个示例,我会尽力帮助您。