Как получить доступ к сервису / фабрике AngularJS в пользовательском плагине CKEditor - PullRequest
0 голосов
/ 30 мая 2019

Я использую CKEditor 4 в приложении AngularJS. У меня есть директива для 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'

Теперь, если я добавлю определение пользовательского плагина в функцию ссылки, он будет работать нормально, потому что он может ссылаться на someFactory без проблем. Но я хочу поместить весь код «myplugin» в отдельный файл плагина. И это прекрасно работает, за исключением случаев, когда он пытается сослаться на какой-то завод, но не работает.

Редактировать ------ Завод построен следующим образом

someFactory.$inject = ['$http', '$log', ...];
function someFactory($http, $log, ...) {
    return {
        someFunction: someFunction,
        ...
    };
    function someFunction() {
        // do some stuff
        return 1;
    }

Кто-нибудь знает, как сделать некоторые фабрики доступными для плагина CKEditor?

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

Я нашел способ сделать это.Я объявляю глобальную переменную типа

var angularObject = {};

Затем в функцию ссылки директивы CKEditor добавляю

angularObject = someFactory

, чтобы создать ссылку на фабрику, которая была введена в директиву.Тогда в коде плагина я могу сказать что-то вроде

angularObject.someFunction
0 голосов
/ 05 июня 2019

Фабрика должна вернуть объект. Если он не был правильно настроен, это может вызвать проблему, с которой вы столкнулись. Для устранения неполадок потребуется более полный пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...