0

我有ckeditor與wiris插件,並且我有ck-editors實例在ng-repeate中,當用戶在ck-editor的任何實例上發佈任何wiris問題時,該帖子被張貼到拳頭實例我想要如果3個ck編輯器的實例在ng-repeat中,用戶發佈ck-editor的第二個實例與wiris公式,那麼這個帖子只應該顯示在ck-editor的第二個實例上,目前它只顯示在一審。 我的HTMLAngularjs多個ckEditors具有相同的ngModel

 <div ng-repeat="item in items"> 
<form role="form" name="DiscussionForm" novalidate> 
      <input type="text" name="followup" ng-model="followupDis" 
    ck-editor placeholder="Compose" required> 
      <div><button type="submit"ng-click="start()">Post</button> 
      </div> 
     </form> 
</div> 

JS

app.directive('ckEditor', function() { 
     return { 
      require: '?ngModel', 
      link: function(scope, elm, attr, ngModel) { 
       var ck = CKEDITOR.replace(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('focus', updateModel); 
       ck.on('key', updateModel); 
       ck.on('dataReady', updateModel); 

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

我期待在指令我創建的第一個元素var ck = CKEDITOR.replace(elm[0]);實例,所以應該改變。 因此,任何人都可以與wiris共享ckeditor的多個實例的解決方案。

回答

0

我已經找到了通過改變屬性的id我們可以解決這個問題。

在JS:

app.directive('ckEditor', function() { 
     var counter = 0, prefix = "followupDiscussionPostReply-"; 
     return { 
      require: '?ngModel', 
      link: function(scope, elm, attr, ngModel) { 

       if (!attr.id) { 
        attr.$set('id', prefix + (++counter)); 
       } 
       // rest of the code 

這些改變固定的倍數ckeditors具有相同ngModel問題對我來說。