2016-08-01 32 views
0

Meine Textarea HTML:

<div data-ng-repeat="(key, contents) in growthEnvData.product_features" class="tile-inner tile-fixed"> 
<textarea placeholder="Enter Product Pricing" class="form-placeholder features" ng-model="contents.features" rows="1" style="height:150px;" name="features-{{$index}}" ></textarea> 
</div> 

Angular JS Richtlinie:

app.directive('ckEditorInline', function() { 
    return { 
     require: '?ngModel', 
     link: function (scope, elm, attr, ngModel) { 

      var eleName = attr.name; 
      var ck = CKEDITOR.inline(eleName); 

      if (!ngModel) return; 
      ck.on('instanceReady', function() { 
       ck.setData(ngModel.$viewValue); 
      }); 
      function updateModel() { 
       scope.$apply(function() { 
       ngModel.$setViewValue(ck.getData()); 
      }); 
     } 
     ck.on('change', updateModel); 
     ck.on('key', updateModel); 
     ck.on('dataReady', updateModel); 

     ngModel.$render = function (value) { 
      ck.setData(ngModel.$viewValue); 
     }; 
    } 
}; 

Wenn ich attr.name in der Direktive gibt es features - {{$ index}} anstelle von features-0 zurück. Ich möchte, dass es Features-0 sind. Wie macht man das? Bitte helfen Sie.

+0

Bitte geben Sie eine funktionierende Fiddle zu sehen – Ahsan

Antwort

0
app.directive('ckEditorInline', function ($timeout) { 
return { 
    require: '?ngModel', 
    link: function (scope, elm, attr, ngModel) { 


     $timeout(function(){ 
      var ck = CKEDITOR.inline(elm[0]); 

      if (!ngModel) return; 
      ck.on('instanceReady', function() { 
       ck.setData(ngModel.$viewValue); 
      }); 
      function updateModel() { 
        scope.$apply(function() { 
        ngModel.$setViewValue(ck.getData()); 
       }); 
      } 
      ck.on('change', updateModel); 
      ck.on('key', updateModel); 
      ck.on('dataReady', updateModel); 

      ngModel.$render = function (value) { 
       ck.setData(ngModel.$viewValue); 
      };     
     }, 2000); 
    } 

}; });

Ich habe versucht, den Code nach 2 Sekunden durch Einstellen der Zeitüberschreitung als eine schnelle Lösung und es funktioniert jetzt gut. Wenn Sie eine alternative Lösung haben, lassen Sie es mich bitte wissen. Die Probleme bestehen darin, mehrere Inline-CSS-Editor in einzelne Seite zu initialisieren.