Javascript 更好的角度定向限制粒度

Javascript 更好的角度定向限制粒度,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,有没有一种方法可以编写一个只适用于特定元素+属性+属性值的指令 出于模块化和维护的目的,我的第一个意图是使用单独的指令,但我担心这是不可能的,因为Angular告诉我有多个指令与元素匹配时会出现错误 因此,我的场景如下:我想编写自己的输入元素,例如 所以我做了 app.directive('input', function () { return { restrict: 'E', templateUrl: function ($element, $attrs) {

有没有一种方法可以编写一个只适用于特定元素+属性+属性值的指令

出于模块化和维护的目的,我的第一个意图是使用单独的指令,但我担心这是不可能的,因为Angular告诉我有多个指令与元素匹配时会出现错误

因此,我的场景如下:我想编写自己的输入元素,例如

所以我做了

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,您认为这个实现如何?嗨,马修,你觉得这个实现怎么样?