Roman
извините я плохо знаю ангуляр. я только в этом месте столкнулся. остальное все работает на пхп
Anton
только вот тут
Anton
в коде самой директивы ничего не надо писать
Roman
спасибо. попробую
Roman
еще проблема в том что тут ckeditor, а у меня другие
🎋🎋🥷 ngSamurai
Roman
порылся в разных местах, переделал найденное и получилось сохранять текст из текстареа. но после сохранения, даже после того как закрою модальное окно и заново открою, пишет ошибку. хотя такой команды не было. добавил условие, но все равно ошибка после сохранения. if (this?.$$scope?.$root && !scope?.$$phase) { scope.$apply(); } даже если нет этого участка, ошибка все равно будет Uncaught TypeError: can't access property "$$phase", this.$$scope.$root is null $$debounceViewValueCommit и там много перечисляется
Roman
а еще инициализацию приходится делать через сеттаймаут, у элементов которые были сделаны динамически через ng-repeat="one in item">
Roman
не понял вопрос
🎋🎋🥷 ngSamurai
почему там два доллара?
🎋🎋🥷 ngSamurai
в контроллере только один нужен от сервиса
Roman
потому что так написано. я это скопировал из браузера
Roman
и потом в условие добавил. но даже если этот код который мой я удалю, то все равно ошибка будет
Roman
от наличия или отсутствия if (this?.$$scope?.$root && !scope?.$$phase) { scope.$apply(); } ничего не изменяется. такое впечатление что ошибка в другом месте
🎋🎋🥷 ngSamurai
стектрейс куда посылает?
Roman
angular.module('apiApp.directives', []) .directive('uiTinymce', function () { uiTinymceConfig = {}; var generatedIds = 0; return { require: 'ngModel', link: function (scope, elm, attrs, ngModel) { var expression, options, tinyInstance; // generate an ID if not present if (!attrs.id) { attrs.$set('id', 'uiTinymce' + generatedIds++); } options = { extended_valid_elements: 'ressource', custom_elements: 'ressource', selector: "textarea", toolbar: "undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | forecolor backcolor | link", setup: function (ed) { ed.on('init', function (args) { ngModel.$render(); }); // Update model on button click ed.on('ExecCommand', function (e) { ed.save(); ngModel.$setViewValue(elm.val()); if (this?.$$scope?.$root && !scope?.$$phase) { scope.$apply(); } }); // Update model on keypress ed.on('KeyUp', function (e) { console.log(ed.isDirty()); ed.save(); ngModel.$setViewValue(elm.val()); if (this?.$$scope?.$root && !scope?.$$phase) { scope.$apply(); } }); }, mode: 'exact', elements: attrs.id }; if (attrs.uiTinymce) { expression = scope.$eval(attrs.uiTinymce); } else { expression = {}; } angular.extend(options, uiTinymceConfig, expression); setTimeout(function () { tinymce.init(options); }, 3000); ngModel.$render = function () { if (!tinyInstance) { tinyInstance = tinymce.get(attrs.id); } if (tinyInstance) { tinyInstance.setContent(ngModel.$viewValue || ''); } }; } }; });
Roman
вот код всего блока.
🎋🎋🥷 ngSamurai
Попробуй обернуть в таймаут
Roman
кого?
Roman
инициализация обернута
🎋🎋🥷 ngSamurai
инициализация обернута
А в this проверял , что лежит?
Roman
нет. спасибо. посмотрю
🎋🎋🥷 ngSamurai
нет. спасибо. посмотрю
Тут вопрос , на какой This там ссылка
🎋🎋🥷 ngSamurai
И патчится ли он ангой
Roman
спасибо. как увижу, если не поможет, напишу.
Roman
нашел где место с ошибкой в дебаггере. в самом файле редактора. но туда же я не могу вмешиваться. попробую более новый загрузить, если найду настолько старый.
Roman
ок. спасибо.
🎋🎋🥷 ngSamurai
у меня так много чего в проектах висит.... "пофиксенного"
Roman
да, я так тоже делал. но тут надеюсь все же без этого обойдется
🎋🎋🥷 ngSamurai
+ надо смотреть в каких форках есть еще фиксы, которые не занесли в остновную репу
Roman
спасибо. начну все же с официального варианта сначала.
Roman
скачал с оф сайта версию 4.9 и загрузил вместо моей 4.0. как минимум перестала появляться ошибка после сохранения. но все равно сам редактор не появляется до перезагрузки страницы (эти поля динамически формируются из загруженной джисанки) и перестало сохранять во втором редакторе.
🎋🎋🥷 ngSamurai
$rootScope.$digest() пробовал запустить?
Roman
так все равно все это происходит внутри редактора.
Roman
сейчас попробую обновить на самую новую версию
🎋🎋🥷 ngSamurai
но редактора то у тебя нет
Roman
почему? файл tinymce.min.js
Roman
докладываю. 6 как и все версии заметно выше имеющейся 4.0 ошибку не дают, но зато сохраняется текст только из первого редактора. максимальная рабочая 4.1.1 при которой сохраняется все, но показывается ошибка. вероятно это взаимосвязано. к сожалению не могу позволить еще тратить время на это. поскольку явных проблем неизвестно, а экспериментировать больше невозможно, отложу не на долго. поделаю более важное и срочное, а потом вернусь к этому. всем спасибо за участие и желание помочь.
Roman
сам так же удивлен. но видно то что сделано в версии 4.1.2 и приводит к такой ситуации. одно починили, другое поломали. хотя вероятно как раз из-за того что починили оно дальше и не идет. если все же исправлю, постараюсь не забыть доложить.
Anton
wysiwyg это всегда боль
Vitos
(Нуб в ангуляре) Подскажите где стоит хранить сервисы, когда я их создаю через ng то они по умолчанию ложаться в дерикторию app мне кажеться это не лучшее место, так как их количество может розростись, правильно ли будет их куда-то переместить?
🎋🎋🥷 ngSamurai
ng g service my-service --flat=true -d должна создать папку
🎋🎋🥷 ngSamurai
в зависимости от того, как ты пилишь проект и разбиваешь его на модули
🎋🎋🥷 ngSamurai
🎋🎋🥷 ngSamurai
Vitos
ng g service my-service --flat=true -d должна создать папку
Всеравно создает сервисы в app
🎋🎋🥷 ngSamurai
а. ну верно )
🎋🎋🥷 ngSamurai
ng g service my-folder/my-service --flat=true -d
🎋🎋🥷 ngSamurai
ng g s my-folder/my-service --flat=true -d
Vitos
Если у меня будет простое приложение(Впервые на ангуляре пишу) то будет допустимым если я создам папку services в app ?
🎋🎋🥷 ngSamurai
ну и я был в core папке изначально
Vitos
Понял, большое спасибо)
🎋🎋🥷 ngSamurai
если оно для пробы - то ок
🎋🎋🥷 ngSamurai
если это показывать - то перенеси в модуль
🎋🎋🥷 ngSamurai
потом
Vitos
если это показывать - то перенеси в модуль
Это ты о каком, тот-что app.module.ts или папка modules та что в core?
🎋🎋🥷 ngSamurai
Это ты о каком, тот-что app.module.ts или папка modules та что в core?
в APP-папке 1) делаешь ng g m core 2) переходишь в папку core 3) ng g service my-service --flat=true 4) добавляешь MyService в providers секцию в CoreModule.ts 5) в appModule импортируешь CoreModule
🎋🎋🥷 ngSamurai
вот так
Vitos
Vitos
Спасибо)
🎋🎋🥷 ngSamurai
export class CoreModule { constructor(@Optional() @SkipSelf() parentModule?: CoreModule) { if (parentModule) { throw new Error('CoreModule is already loaded. Import it in the AppModule only'); } } } еще можешь расширить свой кор-модуль так
Alex
Ребят всем привет! Не знаю ангуляр, но старому проекту нужно внести изменения. Подскажите пж как в контроллере сделать навигацию по роуту
Alex
в общем нужно сделать сброс фильтра. Когда выбираешь фильтры то добавляется хэш к адресу moderation#type=Solution&project_id=38. Хочу убрать хэш и перезагрузить страницу
Alex
$location.path()
нашел, спасибо 🙏
🎋🎋🥷 ngSamurai
Перед этим location.search() почисти
🎋🎋🥷 ngSamurai
Там вроде просто пустой объект передать надо
Alex
$location.search({}) $location.path('/moderation')