【发布时间】:2015-08-04 07:50:58
【问题描述】:
我有指令 foo,我想在另一个指令 dropdown 上使用它。问题是dropdown 指令在模板中使用了另一个名为kendo-drop-down-list 的指令。
我希望能够写作
<dropdown foo>
结果应该是
<select data-kendo-drop-down-list options='dropdownOptions' data-ng-model='selected' foo="bar"></select>
问题是foo 是可选的,这意味着该指令将像<dropdown> 和<dropdown foo="bar"> 一样使用。
如何转移属性?或者我做错了什么,因为我最终遇到了这个问题?
指令
app.directive('dropdown', function() {
return {
restrict: "AE",
scope: {
selected: "=ngModel",
},
template: "<select data-kendo-drop-down-list data-k-options='dropdownOptions' data-ng-model='selected'></select>",
controller: [
'$scope', function($scope) {
$scope.dropdownOptions = {
dataSource: {
type: "odata-v4",
transport: {
read: {
url: "odata/Products",
dataType: "json",
}
},
serverFiltering: true,
}
};
}
]
};
);
【问题讨论】:
-
我真的不明白你的问题。如果您使用
<dropdown foo="bar">,您可以简单地将您的数据通过例如您的指令传递到您的范围内。data: '=foo' -
foo需要放在dropdown指令的模板中 -
啊,我明白了,所以您想将数据从控制器传递到指令和另一个指令?
-
是的,这听起来很对 :) 但我希望传输逻辑有点通用,这样如果有一天我重命名或向列表中添加指令,我就不得不改变它
标签: angularjs kendo-ui angular-directive kendo-dropdown