Ckeditor角度指令不起作用

时间:2015-11-08 07:40:42

标签: javascript angularjs ckeditor directive

我使用下面的代码来显示使用angularjs指令的ckeditor。但它没有显示在页面中。

指令:

var
  Mode: DWORD;
....
Mode := SetErrorMode(SEM_FAILCRITICALERRORS);
SetErrorMode(Mode or SEM_FAILCRITICALERRORS);

和控制器:

'use strict';
define('ngCkeditor', ['app'], function (app) {
app.directive('ngCkeditor', function () {
    return {
        restrict: 'AC',
        require: 'ngModel',
        link: function (scope, element, attr, ngModel) {

            debugger;
            var ck = CKEDITOR.replace(element[0]);
            if (!ngModel) return;
            ck.on('pasteState', function () {
                scope.$apply(function () {
                    ngModel.$setViewValue(ck.getData());
                });
            });
            ngModel.$render = function (value) {
                ck.setData(ngModel.$viewValue);
            };

        }
    };
});
});

这是Html:

define('ckEditorController', ['app', 'ckeditor', 'ckfinder', 'ngCkeditor'], function (app, ckeditor, ckfinder, ngCkeditor) {
app.lazy.controller('ckEditorController', ['$scope', '$location', function ($scope, $location) {

    debugger;
        $scope.text = 'this is test';

}]);
});

在我看来,指令中的链接部分不会触发。

感谢

更新:

查看jsfiddle链接。它就像一个魅力。但我的不是

1 个答案:

答案 0 :(得分:0)

您应该使用正确的指令名称:

<textarea ng-ckeditor ng-model="text"></textarea>

请注意,'ngCkeditor'指令名称对应于'ng-ckeditor'规范化形式,因为camelCase转换为蛇案例。

在我提供详细说明的地方查看此答案。 https://stackoverflow.com/a/33460305/949476