如何在angularjs中为自定义指令命名

时间:2015-09-28 13:11:15

标签: angularjs angularjs-directive

  

现在我使用camelcase指令名称,如下所示

<code-input:text></code-input:text> (or)
<code-input-text></code-text-input>

我可以使用自定义指向名称和属性,

<code-input:text dirType="text" labelHead="Code" dirName="Code" dirId="code" dirClass="form-control" dirModel="taskCreateForm.code" section-class="col col-3 required"></code-input:text>

如果我给出这样的意思,那么就不会从指令中渲染模板。因为,我已经为此动态设置了每个属性。

scope : {
            dirName : '@',
            dirType : '@',
            dirModel : '=',
            labelHead : '@',
            sectionClass : '@',
        },
template : [
                   '<section class="{{sectionClass}}">',
                   '<label class="label">{{labelHead}}</label>',
                   '<label class="input">',
                   '<input type="{{dirType}}" name="{{dirName}}" id="{{dirId}}" class="{{dirClass}}" ng-model="dirModel">',
                   '</label>',
                   '</section>'
                   ].join(''),

任何人都可以给我指导..可能或因为这个问题而发生任何问题。这不是标准方式吗?

2 个答案:

答案 0 :(得分:1)

来自https://docs.angularjs.org/guide/directive#normalization

  

规范化过程如下:

     
      
  1. 从元素/属性的前面剥离x-data-
  2.   
  3. :-_ - 分隔名称转换为camelCase
  4.   

也就是说,code-input-textcodeInputText是等效的,并与codeInputText指令匹配。

答案 1 :(得分:0)

如果你创建了像

这样的自定义指令
<codeInputText></codeInputText>

你必须使用

<code-input-text></code-text-input>

更好地理解指令。