DurandalJS - виджет не инициализируется повторно при последующих запросах

Это пример проблемы: виджет не инициализируется повторно при последующих запросах

У меня есть виджет "пейджер". В первый раз, когда я перехожу на страницу, где он используется, выполняется ctor и инициализируется пейджер (страница 1).

Теперь предположим, что я перехожу на страницу 6.

Проблема в том, что когда я перехожу на другую страницу, а затем обратно на страницу, где находится пейджер, пейджер (виджет) по-прежнему отображается с выбранной страницей 6, а ctor не выполняется. Контроллер виджета не является одноэлементным.

Есть что-то, чего я не понимаю?


person W3Max    schedule 28.06.2013    source источник
comment
Можете ли вы опубликовать код javascript для своего виджета?   -  person Evan Larsen    schedule 30.06.2013
comment
У меня такая же проблема.   -  person Mohammad HS Farvashani    schedule 26.08.2013
comment
Я использую один виджет три раза на одной странице, но некоторые данные используются совместно тремя экземплярами. Мне нужно, чтобы швы были одним экземпляром в 3 местах ... Мне нужно, чтобы это были 3 отдельных экземпляра.   -  person Mohammad HS Farvashani    schedule 26.08.2013


Ответы (1)


Поскольку страница не перерисовывается (как и виджет), ни один из обратных вызовов жизненного цикла виджета не вызывается. Что вы можете сделать, хотя для связи с виджетом из метода активации родительской страницы

  1. Вызвать событие из метода активации корневой страницы, который прослушивает виджет
  2. Обновите данные в некотором наблюдаемом, на который виджет подписывается
  3. Или грязным способом - не делайте этого, просто повторно визуализируйте виджет, обернув виджет привязкой with / if, которая будет меняться при каждом вызове метода активации. Это может быть полезно, если вы не можете изменить код виджета, что маловероятно.
person Dhana Krishnasamy    schedule 02.10.2013