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">
🎋🎋🥷 ngSamurai
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
вот код всего блока.
Roman
🎋🎋🥷 ngSamurai
Попробуй обернуть в таймаут
Roman
кого?
Roman
инициализация обернута
Roman
нет. спасибо. посмотрю
🎋🎋🥷 ngSamurai
И патчится ли он ангой
Roman
спасибо. как увижу, если не поможет, напишу.
Roman
нашел где место с ошибкой в дебаггере. в самом файле редактора. но туда же я не могу вмешиваться. попробую более новый загрузить, если найду настолько старый.
🎋🎋🥷 ngSamurai
Roman
ок. спасибо.
🎋🎋🥷 ngSamurai
у меня так много чего в проектах висит.... "пофиксенного"
Roman
да, я так тоже делал. но тут надеюсь все же без этого обойдется
🎋🎋🥷 ngSamurai
+ надо смотреть в каких форках есть еще фиксы, которые не занесли в остновную репу
Roman
спасибо. начну все же с официального варианта сначала.
Roman
скачал с оф сайта версию 4.9 и загрузил вместо моей 4.0. как минимум перестала появляться ошибка после сохранения. но все равно сам редактор не появляется до перезагрузки страницы (эти поля динамически формируются из загруженной джисанки) и перестало сохранять во втором редакторе.
🎋🎋🥷 ngSamurai
$rootScope.$digest() пробовал запустить?
Roman
так все равно все это происходит внутри редактора.
Roman
сейчас попробую обновить на самую новую версию
🎋🎋🥷 ngSamurai
но редактора то у тебя нет
🎋🎋🥷 ngSamurai
Roman
почему? файл tinymce.min.js
Roman
докладываю. 6 как и все версии заметно выше имеющейся 4.0 ошибку не дают, но зато сохраняется текст только из первого редактора. максимальная рабочая 4.1.1 при которой сохраняется все, но показывается ошибка. вероятно это взаимосвязано. к сожалению не могу позволить еще тратить время на это. поскольку явных проблем неизвестно, а экспериментировать больше невозможно, отложу не на долго. поделаю более важное и срочное, а потом вернусь к этому. всем спасибо за участие и желание помочь.
🎋🎋🥷 ngSamurai
Roman
сам так же удивлен. но видно то что сделано в версии 4.1.2 и приводит к такой ситуации. одно починили, другое поломали. хотя вероятно как раз из-за того что починили оно дальше и не идет. если все же исправлю, постараюсь не забыть доложить.
Anton
wysiwyg это всегда боль
🎋🎋🥷 ngSamurai
Vitos
(Нуб в ангуляре) Подскажите где стоит хранить сервисы, когда я их создаю через ng то они по умолчанию ложаться в дерикторию app мне кажеться это не лучшее место, так как их количество может розростись, правильно ли будет их куда-то переместить?
🎋🎋🥷 ngSamurai
Vitos
🎋🎋🥷 ngSamurai
ng g service my-service --flat=true -d
должна создать папку
🎋🎋🥷 ngSamurai
🎋🎋🥷 ngSamurai
в зависимости от того, как ты пилишь проект и разбиваешь его на модули
Vitos
Vitos
🎋🎋🥷 ngSamurai
🎋🎋🥷 ngSamurai
Vitos
🎋🎋🥷 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 папке изначально
🎋🎋🥷 ngSamurai
Vitos
Понял, большое спасибо)
🎋🎋🥷 ngSamurai
если оно для пробы - то ок
🎋🎋🥷 ngSamurai
если это показывать - то перенеси в модуль
🎋🎋🥷 ngSamurai
потом
🎋🎋🥷 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. Хочу убрать хэш и перезагрузить страницу
🎋🎋🥷 ngSamurai
🎋🎋🥷 ngSamurai
Перед этим location.search() почисти
🎋🎋🥷 ngSamurai
Там вроде просто пустой объект передать надо
Alex
$location.search({})
$location.path('/moderation')