AngularJS有条件地添加自定义';数据切换';属性
我有以下指示:AngularJS有条件地添加自定义';数据切换';属性,angularjs,Angularjs,我有以下指示: myDirective.directive('sidebar', function () { return { restrict: 'E', replace: true, template: '<li ng-repeat="m in menu" ng-class="{\'dropdown\':m.submenu}">' + '<a href="{{m.url}}" ng-class="{\'dropdown-toggle\
myDirective.directive('sidebar', function () {
return {
restrict: 'E',
replace: true,
template: '<li ng-repeat="m in menu" ng-class="{\'dropdown\':m.submenu}">' +
'<a href="{{m.url}}" ng-class="{\'dropdown-toggle\':m.submenu}" ng-attr="{\'data-toggle=dropdown\': m.submenu">' +
'<i class="{{m.image}}"></i>' +
' {{m.name}}' +
'<b class="caret" ng-if="m.submenu"></b>' +
'</a>' +
'<ul ng-if="m.submenu" class="dropdown-menu">' +
'<li ng-repeat="s in m.submenu"><a href="{{s.url}}"><i class="{{s.image}}"></i> {{s.name}}</a></li>' +
'</ul>' +
'</li>',
link: function (scope, elem, attrs) {
scope.menu = [
{
"name": "Home",
"url": "/",
"image": "fa fa-bar-chart-o"
},
{
"name": "Data Integration",
"url": "/manage/dataintegration/index",
"image": "fa fa-dashboard"
},
{
"name": "Users",
"url": "/manage/users/index",
"image": "fa fa-dashboard"
},
{
"name": "Logger",
"url": "/manage/logger/index",
"image": "fa fa-dashboard"
},
{
"name": "Drop",
"url": "",
"image": "fa fa-dashboard",
"submenu": [
{
"name": "Logger",
"url": "/manage/logger/index",
"image": "fa fa-dashboard"
},
{
"name": "Logger2",
"url": "/manage/logger/index",
"image": "fa fa-dashboard"
}
]
}
]
}
}
});
myDirective.directive('sidebar',函数(){
返回{
限制:'E',
替换:正确,
模板:“”+
'' +
“”+
“”+
“
”+
“ ”,
链接:功能(范围、要素、属性){
scope.menu=[
{
“姓名”:“家”,
“url”:“/”,
“图像”:“fa-bar-chart-o”
},
{
“名称”:“数据集成”,
“url”:“/manage/dataintegration/index”,
“图像”:“fa仪表板”
},
{
“名称”:“用户”,
“url”:“/管理/用户/索引”,
“图像”:“fa仪表板”
},
{
“名称”:“记录器”,
“url”:“/管理/记录器/索引”,
“图像”:“fa仪表板”
},
{
“名称”:“删除”,
“url”:“,
“图像”:“fa仪表板”,
“子菜单”:[
{
“名称”:“记录器”,
“url”:“/管理/记录器/索引”,
“图像”:“fa仪表板”
},
{
“名称”:“Logger2”,
“url”:“/管理/记录器/索引”,
“图像”:“fa仪表板”
}
]
}
]
}
}
});
仅当使用
ng attr
存在m.submenu
时,我才尝试将数据切换
属性设置为a
标记,但它不起作用。假设是逐字设置的:
ng-attr="{\'data-toggle=dropdown\': m.submenu"
缺少结束语
}
对于我来说,ng attr
根本不起作用,你可以试试这个
ng-attr-data-toggle="{{m.submenu && 'dropdown' || null}}"
但即使m.submenu为false,它也会删除没有该值的属性。希望能有所帮助。你能在小提琴/普朗克中重现这种行为吗?你使用的是哪种版本的angular?ng attr是在1.1.4中添加的。@GruffBunny我使用的是1.2.2