Работейки с дюрандал и нокаут, имам някои проблеми с абонамента за имотите. По принцип в моя метод 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