如何在 CKEditor 自定义插件中访问 AngularJS service/factory
How to access AngularJS service/factory in CKEditor custom plugin
我在 AngularJS 应用程序中使用 CKEditor 4。我有一个 CKEditor 指令,它设置编辑器选项
angular.module('someMod', []).directive("ckeditor", CKEditor).factory('someFactory',someFactory);
...etc...
CKEditor.$inject = ["someFactory"];
function CKEditor(someFactory) {
...and in the link function the editor options includes...
extraPlugins: 'myplugin'
现在,如果我将自定义插件定义放入 link 函数中,它可以正常工作,因为它可以毫无问题地引用 someFactory。但我想将所有 "myplugin" 代码放入一个单独的插件文件中。这工作正常,除非它试图引用 someFactory 失败。
编辑 ------
工厂构造如下
someFactory.$inject = ['$http', '$log', ...];
function someFactory($http, $log, ...) {
return {
someFunction: someFunction,
...
};
function someFunction() {
// do some stuff
return 1;
}
有人知道如何让 CKEditor 插件可以使用 someFactory 吗?
工厂必须return一个对象。如果未正确设置,可能会导致您遇到的问题。需要更完整的示例才能进行故障排除。
我找到了一种方法来做到这一点。我声明了一个全局变量,如
var angularObject = {};
然后在 CKEditor 指令 link 函数中添加
angularObject = someFactory
创建对注入指令的工厂的引用。然后在插件代码中我可以这样说
angularObject.someFunction
我在 AngularJS 应用程序中使用 CKEditor 4。我有一个 CKEditor 指令,它设置编辑器选项
angular.module('someMod', []).directive("ckeditor", CKEditor).factory('someFactory',someFactory);
...etc...
CKEditor.$inject = ["someFactory"];
function CKEditor(someFactory) {
...and in the link function the editor options includes...
extraPlugins: 'myplugin'
现在,如果我将自定义插件定义放入 link 函数中,它可以正常工作,因为它可以毫无问题地引用 someFactory。但我想将所有 "myplugin" 代码放入一个单独的插件文件中。这工作正常,除非它试图引用 someFactory 失败。
编辑 ------ 工厂构造如下
someFactory.$inject = ['$http', '$log', ...];
function someFactory($http, $log, ...) {
return {
someFunction: someFunction,
...
};
function someFunction() {
// do some stuff
return 1;
}
有人知道如何让 CKEditor 插件可以使用 someFactory 吗?
工厂必须return一个对象。如果未正确设置,可能会导致您遇到的问题。需要更完整的示例才能进行故障排除。
我找到了一种方法来做到这一点。我声明了一个全局变量,如
var angularObject = {};
然后在 CKEditor 指令 link 函数中添加
angularObject = someFactory
创建对注入指令的工厂的引用。然后在插件代码中我可以这样说
angularObject.someFunction