Javascript 敲除JS-可观察不';t在加载时更新视图
首先,我是一个新手。有一些基本的了解。我用十字路口选路 这是目前的情况。我从URL获取的值为param.route().plan。它确实很好用 然后将该值设置为视图模型中的可观察值。但是,当我使用location.href=“checkout/gold”从上一个位置导航到此路线时,绑定不起作用/值不更新,其中gold是计划。但如果我重新加载页面,它确实可以正常工作 PS:视图模型确实按预期工作。我用console.log进行了双重确认 现在有一些代码函数重定向到有问题的视图模型Javascript 敲除JS-可观察不';t在加载时更新视图,javascript,knockout.js,crossroadsjs,Javascript,Knockout.js,Crossroadsjs,首先,我是一个新手。有一些基本的了解。我用十字路口选路 这是目前的情况。我从URL获取的值为param.route().plan。它确实很好用 然后将该值设置为视图模型中的可观察值。但是,当我使用location.href=“checkout/gold”从上一个位置导航到此路线时,绑定不起作用/值不更新,其中gold是计划。但如果我重新加载页面,它确实可以正常工作 PS:视图模型确实按预期工作。我用console.log进行了双重确认 现在有一些代码函数重定向到有问题的视图模型 // Funct
// 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);
看法
好的,我知道答案了。也许会帮助别人
在这种情况下,使用计算的可观测值。这保证了在这种情况下具有约束力
var self = this;
self.firstName = ko.observable('Bob');
self.lastName = ko.observable('Smith');
self.fullName = ko.computed(function() {
return self.firstName() + " " + self.lastName();
});
他们的文档非常前卫self
指的是什么?我猜您必须使用self.selectedPlan.subscribe(函数(plan){…location.href=“#checkout/”+plan;…})
var self=this您不能对父对象应用订阅函数。您必须手动为每个可观察值创建单独的订阅函数,您需要观察firstName
、lastName
或fullName
与您的问题有什么关系?使用crossroad.js的人怎么会觉得这有帮助呢?我只是举了一个例子。问题与Crossroads无关,而是与Observable类型有关。但是如果您解决了这个问题,为什么不简单地发布代码呢?这就是这个网站的工作原理。答案一定与问题有关。这个答案是没有用的,如果其他人发布了它,你可能会自己投否决票。
var self = this;
self.firstName = ko.observable('Bob');
self.lastName = ko.observable('Smith');
self.fullName = ko.computed(function() {
return self.firstName() + " " + self.lastName();
});