1

我有一个指令:

app.directive('testDir', [function () {
    return {
        require: '?ngModel',
        link: function ($scope, elm, attr, ngModel) {
            var abc=attr.testDir;
            var def=< The value zzz >
        }
    };
}])

我知道我可以这样称呼:

<div test-dir='abcd'>xx</div>

如果我还需要传递参数“zzz”怎么办。如何将多个参数传递给我的指令?

4

2 回答 2

2

使用多个属性。您的指令可以访问元素中使用的所有属性:

<div my-directive arg-one='abcd', arg-two>xx</div>

app.directive('myDirective', function () {
  return {
      link: function ($scope, elm, attr, ngModel) {
          var abc=attr.argOne;
          var def=attr.argTwo;
      }
  };
});

注意从-camelCase 的变化。这是由 AngularJS 完成的。

于 2013-09-12T17:01:47.867 回答
0

您可以像这样使用数组

 <div test-dir='["abcd","zzz"]'>xx</div>

然后在你的指令中你可以做

var abc = JSON.parse(attr.testDir); // = Array ["abcd","zzz"]
于 2013-09-12T17:03:46.610 回答