私のAngularJSディレクティブは次のとおりです。
.directive('ckEditor', function() {
return {
require: '?ngModel',
link: function(scope, elm, attr, ngModel) {
var ck = CKEDITOR.replace(elm[0]);
if (!ngModel) return;
ck.on('pasteState', function() {
scope.$apply(function() {
ngModel.$setViewValue(ck.getData());
});
});
ngModel.$render = function(value) {
ck.setData(ngModel.$viewValue);
};
}
};
My View が次のようなものだとしましょう:
<textarea ck-editor name="menu_content" style="width:600px; height:300px;" id="menu_content" ng-model="models.menu_content" ub-search-settings=""></textarea>
ビューが呼び出されると、TextArea の代わりに CKEditor が表示されます。大丈夫です。さて、私の問題は、ビューが次回呼び出されたときに CKEditor が表示されず、ページ全体がリロードされないことです。