我對CKEDITOR API還不是很熟悉,現在我陷入了困境,試圖找到在CKEDITOR可編輯區域內創建佔位符的方式。佔位符的預期行爲 - 消失在用戶與它交互時,允許編輯內容。CKEDITOR中的文本佔位符(角度上下文)
我知道已經有一個佔位符插件(http://ckeditor.com/addon/placeholder),但其行爲不是我正在尋找的。
更具體地說,問題是:是否可以訂閱CKEDITOR內特定元素上的某些事件?
在角度方面我能夠編譯我的HTML被傳遞給CKEDITOR NG-模型
$scope.html = $compile('<div><span text-placeholder >Placeholder</span></div>')($scope).html();
但我無法嘗試設置點擊指令的內部事件前的狀態:
.directive('textPlaceholder', [ function() {
return {
restrict: 'A',
link: function ($scope, $element) {
//THIS DOES NOT WORK UNFORTUNATELY
$element.on('click', function() {
console.log('clicked');
})
}
}
}])
有什麼想法?
UPDATE:現在,我想出瞭解決方案,以實現簡單的插件,然後引用它在CKEDITOR配置:
(function() {
CKEDITOR.plugins.add('text-placeholder', {
init: function (editor) {
editor.on('key', function (evt) {
var el = $(CKEDITOR.instances.editor1.getSelection().getNative().baseNode.parentElement);
if (el.hasClass('text-placeholder')) {
el.remove();
}
});
}
});
})();
看起來很醜。任何反饋意見。