Использование wymeditor с angularJS, маршрутизацией и представлениями

Я использую WYMeditor для моего проекта, вот API: http://wymeditor.readthedocs.org/

Итак, я обнаружил свою проблему и нашел решение, но мое решение не похоже на правильный подход.

У меня есть несколько представлений, определенных с $ routeProvider, все они отлично работают, вот проблема:

У меня есть контроллер angularjs, обрабатывающий представление, где находится редактор, я инициализирую редактор в контроллере следующим образом:

$scope.resume = GetModel();
$("#editor_summary").wymeditor({
html: $scope.resume.summary;
});

GetModel - это метод, который извлекает объект, сохраненный в localStorage, загружает редактор с html внутри. и это работает очень хорошо. теперь, так как это единственный раз, когда я использую редактор в проекте, у меня есть этот код для получения экземпляра редактора:

var summary_wym = jQuery.wymeditors(0);
//jQuery.getWymeditorByTextarea(jQuery('#editor_summary'));
//Tried also the getWymeditorByTextarea, yields the same results.

Это работает хорошо при первом запуске приложения, но если я перехожу в другое представление и затем возвращаюсь, jQuery.wymeditors(0) больше не является нужным мне редактором, мне нужен экземпляр редактора jQuery.wymeditors(1), потому что контроллер был вызван снова после возврата к представлению, создав еще один экземпляр редактора, который является более новым.

В этой функции я обновляю локальное хранилище данными редактора:

$scope.savechanges = function () {
    console.log(summary_wym.html());
    var resume = GetModel();
    resume.summary = summary_wym.html();
    UpdateModel(resume);
};

функция не будет работать должным образом во второй раз, когда я загружаю страницу, потому что экземпляр редактора, указанный здесь, не корректен.

Для решения этой проблемы необходимо создать глобальную переменную в родительском контроллере и увеличивать ее при каждом вызове дочернего контроллера и вызывать редактор следующим образом:

jQuery.wymeditors(i);

Когда я - увеличенное значение каждый раз, когда вызывается контроллер. Это работает, и я проверил это. Но мне кажется, что может быть лучший подход.

0 ответов

Другие вопросы по тегам