Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 如何将多个参数传递到指令中?_Angularjs - Fatal编程技术网

Angularjs 如何将多个参数传递到指令中?

Angularjs 如何将多个参数传递到指令中?,angularjs,Angularjs,我有一个指示: app.directive('testDir', [function () { return { require: '?ngModel', link: function ($scope, elm, attr, ngModel) { var abc=attr.testDir; var def=< The value zzz > } }; }]) app.di

我有一个指示:

app.directive('testDir', [function () {
    return {
        require: '?ngModel',
        link: function ($scope, elm, attr, ngModel) {
            var abc=attr.testDir;
            var def=< The value zzz >
        }
    };
}])
app.directive('testDir',[function(){
返回{
要求:“?ngModel”,
链接:功能($scope、elm、attr、ngModel){
var abc=attr.testDir;
var def=<值zzz>
}
};
}])
我知道我可以这样称呼它:

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

如果我还需要传递参数“zzz”,该怎么办。如何向指令传递多个参数?

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

<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;
      }
  };
});
xx
app.directive('myDirective',function(){
返回{
链接:功能($scope、elm、attr、ngModel){
var abc=attr.argOne;
var def=attr.argTwo;
}
};
});

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

您可以使用这样的数组

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

您还想传递什么?您可以使用与上一个问题的答案相同的attrs变量。我在想,例如,我是否想向指令传递一个高度和宽度参数。因此,我可以通过将arg height=60和arg width=99放入DIV中来传递高度和宽度?我是否需要将它们括在引号中,以及它们是否位于div中的任何位置。我有点困惑,因为这是否与div中的其他内容冲突?我认为是否将它们括在引号中并不重要,但我确信,如果不使用明显的属性(例如alt),它不会与其他属性混淆。对于HTML属性,顺序并不重要。
var abc = JSON.parse(attr.testDir); // = Array ["abcd","zzz"]