AngularJS中的条件自定义属性指令

时间:2014-05-07 07:37:31

标签: angularjs angularjs-directive

我有两个自定义指令(限制:' 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自定义指令编写这样的条件?

1 个答案:

答案 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>

Here is a sample