2014-09-25 99 views
3

我有一個指令:angularjs孤立範圍指令並不解析變量模板

angular.module('spApp.directives').directive("clickToEditPlain", function() { 
    var editorTemplate = '<div class="click-to-edit">' + 
     '<div ng-hide="view.editorEnabled">' + 
     '{{value}} ' + 
     '<a ng-click="enableEditor()">Edit</a>' + 
     '</div>' + 
     '<div ng-show="view.editorEnabled">' + 
     '<input id="{{inputId}}" type="text" name="{{inputName}}" ng - model="view.editableValue" >' + 
     '<a href="#" ng-click="save()">Save</a>' + 
     ' or ' + 
     '<a ng-click="disableEditor()">cancel</a>.' + 
     '</div>' + 
     '</div>'; 

    return { 
     restrict: "A", 
     replace: true, 
     template: editorTemplate, 
     scope: { 
      value: "=clickToEditPlain", 
      ngModel: "=", 
      inputName: "@", 
      inputId: "@" 
     }, 
     controller: function($scope) { 
     } 
    }; 
}); 

它按預期工作。有網頁以及解析的HTML在那裏我可以看到正確的評估,inputIdinputName

<input id="inputId-52" type="text" name="inputName-52" ng-model="view.editableValue"> 

但是,當我在調試器檢查的結構我看到這個名字inputName{{inputName}}評價: enter image description here

,且方向以ng形式放置。

+0

這可能是由於內插不支持生成模型控制器。模型控制器使用這個名稱'{{inputName}}'創建 – Chandermani 2014-09-25 11:47:29

回答

0

你可以做這樣的事情在你的指令模板:

template: function(elem, attrs) { 
    return '<input type="text" name="' + attrs.class+ '">' 
} 

而在HTML:

<div class="yourInputName" click-to-edit-plain></div> 

最後,這是在新版本角不再有問題。