Javascript 更好的角度定向限制粒度
有没有一种方法可以编写一个只适用于特定元素+属性+属性值的指令 出于模块化和维护的目的,我的第一个意图是使用单独的指令,但我担心这是不可能的,因为Angular告诉我有多个指令与元素匹配时会出现错误 因此,我的场景如下:我想编写自己的输入元素,例如Javascript 更好的角度定向限制粒度,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,有没有一种方法可以编写一个只适用于特定元素+属性+属性值的指令 出于模块化和维护的目的,我的第一个意图是使用单独的指令,但我担心这是不可能的,因为Angular告诉我有多个指令与元素匹配时会出现错误 因此,我的场景如下:我想编写自己的输入元素,例如 所以我做了 app.directive('input', function () { return { restrict: 'E', templateUrl: function ($element, $attrs) {
所以我做了
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">
整页挂起
在这里查看我的小提琴:如果您将html更改为:
<input type="text" time-picker> <input type="text" date-picker>
将时间选择器/日期选择器放入元素的输入类型中实际上是无效的。如果你仔细阅读了angular文档,你会发现一个完整的列表,上面列出了你可以联想到的不同事物。四个是:
E - Element name: <my-directive></my-directive>
A - Attribute: <div my-directive="exp"> </div>
C - Class: <div class="my-directive: exp;"></div>
M - Comment: <!-- directive: my-directive exp -->
E-元素名称:
A-属性:
C级:
M-评论:
如果将html更改为:
<input type="text" time-picker> <input type="text" date-picker>
将时间选择器/日期选择器放入元素的输入类型中实际上是无效的。如果你仔细阅读了angular文档,你会发现一个完整的列表,上面列出了你可以联想到的不同事物。四个是:
E - Element name: <my-directive></my-directive>
A - Attribute: <div my-directive="exp"> </div>
C - Class: <div class="my-directive: exp;"></div>
M - Comment: <!-- directive: my-directive exp -->
E-元素名称:
A-属性:
C级:
M-评论:
尝试并理解AngularJs中创建的自定义指令可能有以下限制:
“限制”选项通常设置为:
“A”-仅与属性名称匹配
“E”-仅与元素名称匹配
“C”-仅与类名匹配
“M”-仅限注释
这些限制可以根据需要进行组合:
例如:
“AEC”-匹配属性或元素或类名在AngularJs中尝试并理解创建的自定义指令可以有以下限制: “限制”选项通常设置为: “A”-仅与属性名称匹配 “E”-仅与元素名称匹配 “C”-仅与类名匹配 “M”-仅限注释 这些限制可以根据需要进行组合: 例如:
“AEC”-匹配属性、元素或类名Hi Mathew,您认为这个实现如何?嗨,马修,你觉得这个实现怎么样?