如何在同一元素上多次调用同一指令?

时间:2015-02-05 01:29:38

标签: angularjs

以下是我的整个程序

<body ng-app="xx">
<p cl-x="1" cl-x="2"></p>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.js">
</script>
<script>
angular.module('xx', function() {})
.directive('clX', function() {
  return {
   link : function(scope, element, attrs) {
        console.log(attrs.clX);
    }
  };
});
</script></body>

我希望它能在控制台1上打印出来,然后打印出来。

它实际上只是打印出来。

对我开放的一些选项是

  • 将两个参数放在一个调用中:<p cl-x="1,2"></p>
  • 将两个调用放在不同的元素中:<p cl-x="1"><span cl-x="2"/></p>

对于任何试图说服我的人,我可以做我不能做的事情的自动downvote。

1 个答案:

答案 0 :(得分:1)

正如@PSL指出的那样,属性可能不会重复。

鉴于您提供的约束(它必须在单个元素上并且您无法从单个属性解析多个参数),您只能使用AngularJS提供的不同别名机制(data- *等)。 )并使用不同的节点类型(元素,类,属性,注释)。您可以多次成功地在同一元素上调用相同的指令,但每次调用在标记中的显示方式都不同。

这样的代码会变得迟钝而且令人困惑,但会在你的约束下实现你的目标。