首先,我是Knockout的新手。有一些基本的瞭解。我正在使用Crossroad進行路由Knockout JS - Observable不會更新加載視圖
這是當前場景。我從URL獲取值爲param.route()。plan。它確實工作正常
然後將值設置爲視圖模型中的Observable。但是,綁定不起作用/當我從前一個使用location.href =「checkout/gold」導航到此路由時,值不會更新,其中gold是計劃。但是,如果我重新加載頁面,它確實工作正常。
PS:視圖模型確實按預期工作。我一倍的console.log
現在證實了一些代碼 - 該函數重定向到這似乎工作問題的視圖模型
// Function Handling Subsription
self.subscribe = function() {
alert(self.selectedPlan());
var currentUser = Parse.User.current();
if (currentUser === null) {
$('#loginBox').modal('show');
} else { // Else redirect
location.href = '#checkout/'+self.selectedPlan();
// Redirect to Checkout page
}
} // Function ends here
視圖模型
self.selectedPlan = ko.observable(params.route().plan);
查看
<span data-bind="text:selectedPlan()></span>
是什麼'self'指什麼?我想你必須使用'self.selectedPlan.subscribe(function(plan){... location.href =「#checkout /」+ plan; ...})' –
var self = this –
你不能申請訂閱功能在父對象上。您需要手動爲每個可觀察值創建單獨的訂閱功能,您需要觀看 – Rajesh