首先,我是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