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"]