基本上我在JS中有以下代码片段:
var pgViewModel = {
inited : false,
username : ko.observable("", {persist: "login.username"}),
password : ko.observable("", {persist: "login.password"}),
vehicles : ko.observableArray(),
selectedVehicle : ko.observable(null, {persist: "login.vehicle"}),
tirepressure : ko.computed(function(){
var selecV = this.selectedVehicle();
return selecV.tirepressure_vl + '/' + selecV.tirepressure_vr + '/' + selecV.tirepressure_hl + '/' + slecV.tirepressure_hr + 'bar';
},this),
在尝试加载页面时,我收到错误:'this.selectedVehicle()不是函数'。发生此问题,因为解析函数时pgViewModel尚未就绪?有没有可能的解决方案。对不起,我不清楚这里的问题。感谢。
答案 0 :(得分:1)
您获得的问题与调用时的上下文和this
值有关。我们强烈建议<{1>}视图模型中使用直接this
。而是创建额外的self
字段,该字段将在对象创建时初始化。
knockout
似乎你在没有完整代码的情况下使用var self = this;
...
tirepressure : ko.computed(function(){
var selecV = self.selectedVehicle();
弄乱了某些内容,无法找到根本原因。我已经更新了一下,一切似乎都运转良好:
ViewModel
答案 1 :(得分:0)
你有类型,应该是:
this.selectedVehicle()//not this.selecttedVehicle()