TypeError: this.getWindow(...).$ is undefined

TypeError: this.getWindow(...).$ is undefined

我明白了

TypeError: this.getWindow(...).$ is undefined

当我使用 CKEDITOR.instances['pageContent'].getData(); 使用 ajax 将记录保存到数据库时。我正在使用 Modal

请告诉我如何解决这个错误。

<div class="modal-body">
    <div class="form-group">
        <label>Page Content</label>
        <textarea id="pageContent" name="pageContent" ng-model="editCmsPageDetail.pageContent" class="form-control ckeditor">
        </textarea>
    </div>
</div>

这是我的文本区域,ID 为 pageContent。 脚本如下:

<script>
      //CKEDITOR.replace('pageContent');
      $('#pageContent').ckeditor();
</script>

单击确定按钮时的功能

$scope.ok = function () {       
    $scope.editCmsPageDetail['pageContent'] = CKEDITOR.instances['pageContent'].getData();
    //alert(pageContent);

    var getCmsPageUpdateUrl = $('#updateCmsPageUrl').val();

    var httpRequest = $http({
        method: 'POST',
        url: getCmsPageUpdateUrl,
        data : $scope.editCmsPageDetail
    }).success(function(data, status) {

        if(data.response.error) {

        } else if(data.response.cmsPageDetail) {

        }
    });

    $modalInstance.dismiss($scope.editCmsPageDetail);
};

可能您缺少 CKEditor 的 jQuery 适配器,请参阅:http://docs.ckeditor.com/#!/guide/dev_jquery

或者您可以通过在 textarea 上设置 ckeditor class 来启动它,就像您现在所做的那样,请参阅:http://ckeditor.com/ckeditor_4.3_beta/samples/replacebyclass.html

然后你可以访问ckeditor实例并获取它的值,比如:

$(document).on('click', '#AddBrandButton', function () {
    alert(CKEDITOR.instances['pageContent'].getData());
});

演示:http://jsfiddle.net/IrvinDominin/9p8pkcpc/