如何将多个参数传递给指令?

时间:2013-09-12 16:56:54

标签: angularjs

我有一个指令:

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',该怎么办?如何将多个参数传递给我的指令?

2 个答案:

答案 0 :(得分: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完成的。

答案 1 :(得分:0)

您可以使用类似的数组

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

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

var abc = JSON.parse(attr.testDir); // = Array ["abcd","zzz"]