我有两个自定义指令(限制:' A'),它们运行良好(custom1和custom2)
在我的html页面中,我想在div上使用custom1 attribut或custom2 attribut,具体取决于条件。例如,我想写这样的东西:
<div condition?custom1:custom2 />
我不想在以下代码中使用ng-if:
<div id='main-div' ng-if="map.2d==true" custom1 />
<div id='main-div' ng-if="map.2d==false" custom2 />
有没有办法为attribut自定义指令编写这样的条件?
答案 0 :(得分:1)
<强>更新强>
您可以构建一个单独的指令,动态编译所需的指令:
app.directive('dynamicDirective', function($compile) {
return {
restrict: 'A',
replace: true,
scope: {
dynamicDirective: '='
},
link: function(scope, elem, attrs) {
var e = $compile("<div " + scope.dynamicDirective + "></div>")(scope);
elem.append(e);
}
};
});
它可以如下使用(在此示例中someDirective
在作用域上定义并具有所需指令的名称):
<div dynamic-directive="someDirective"></div>