有没有办法编写只适用于特定元素 + 属性 + 属性值的指令?
我的第一个意图是为了模块化和维护目的而拥有单独的指令,但我担心这是不可能的,因为我从 Angular 收到一个错误,告诉我有多个指令与元素匹配。
所以我的场景如下:我想编写自己的输入元素,例如
<input type="time-picker">
<input type="date-picker">
所以我做了
app.directive('input', function () {
return {
restrict: 'E',
templateUrl: function ($element, $attrs) {
if ($attrs.type === 'date-picker' || $attrs.type === 'time-picker') {
return $attrs.type + '.html';
}
},
controller: function ($scope, $element, $attrs) {
if ($attrs.type === 'date-picker') {
console.log('date-picker');
}
else if($attrs.type === 'time-picker') {
console.log('time-picker');
}
}
}
});
只要页面中没有其他输入元素,这就会很好地工作。
如果我把
<input type="time-picker">
<input type="date-picker">
它工作正常。现在如果我添加
<input type="text">
整个页面挂起。
在这里查看我的小提琴:http: //jsfiddle.net/pWc3K/8/