При работе с Durandal и Knockout у меня возникли проблемы с подпиской на свойства. По сути, в моем методе viewAttached у меня есть некоторая привязка к наблюдаемым свойствам, которые очень хорошо работают в первый раз, когда я загружаю свое представление. Во второй раз, когда я загружаю представление, у меня возникли некоторые проблемы из-за того, что выполняется код внутри подписок (чего я не хочу). Код примерно такой:
export var viewAttached = function (view) {
toDate.subscribe(function (newValue) {
isLoading(true);
return datacontext.getData(newValue).then(function () {
isLoading(false);
});
});
fromDate.subscribe(function (newValue) {
isLoading(true);
return datacontext.getData(newValue).then(function () {
isLoading(false);
});
});
}
Код внутри подписки выполняется в данный момент, чтобы загрузить мое представление во второй раз, что не так. Я хотел бы знать, возможно ли удалить подписки на эти свойства, чтобы выгрузить мое представление. Это возможно? можно ли узнать, когда представление выгружается? любая помощь приветствуется.
ОБНОВЛЕНИЕ: я попытался удалить подписку в функции активации (см. документацию durandal), но код подписки все еще там.
export function activate() {
//remove suscriptions
toDate.subscribe(function (newValue) {
//do nothing
});
fromDate.subscribe(function (newValue) {
//do nothing
});
}
ОБНОВЛЕНИЕ: fromDate и ToDate объявлены как (я использую машинописный текст)
export var fromDate = <any>ko.observable();
export var toDate = <any>ko.observable();
fromDate и toDate и устанавливаются по умолчанию при активации метода:
function loadInitData() {
var focusDate = ko.observable(selectedDate);
fromDate(firstDayOfMonth(focusDate));
toDate(getLastDayOfMonth(focusDate));
loadFilterLookups();
loadRegistrations();
}
export function activate() {
loadInitData();
}
subscribe
не настраивается сразу после определенияtoDate
иfromDate
? - person RainerAtSpirit   schedule 11.07.2013toDate
иfromDate
и возвращает ли модуль функцию-одиночку или функцию-конструктор? Если вы используете синглтон, включен ли в вашем представлении cacheViews: true? - person RainerAtSpirit   schedule 12.07.2013addDate
иfromDate
и требуетdefine
вокруг него. - person RainerAtSpirit   schedule 16.07.2013