Я использую 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;
}
Кто-нибудь знает, как сделать someFactory доступным для плагина CKEditor?
2 ответа
Я нашел способ сделать это. Я объявляю глобальную переменную, как
var angularObject = {};
Затем в функцию ссылки директивы CKEditor я добавляю
angularObject = someFactory
Создать ссылку на фабрику, которая была введена в директиву. Тогда в коде плагина я могу сказать что-то вроде
angularObject.someFunction
Фабрика должна вернуть объект. Если он не был правильно настроен, это может вызвать проблему, с которой вы столкнулись. Требуется более полный пример для устранения неполадок.
Похожие вопросы
Новые вопросы
angularjs
Используйте для вопросов об AngularJS (1.x), JavaScript-фреймворке с открытым исходным кодом. НЕ используйте этот тег для Angular 2 или более поздних версий; вместо этого используйте тег [angular].