我有以下Knockout.js对象:
var viewModel = {
description : ko.observable(""),
Name : ko.observable(""),
productid : ko.observable(""),
productmodel : ko.observable(""),
productnumber : ko.observable(""),
text_relevance : ko.observable(""),
mydunamicfield : ko.computed(function() {
return "bq=(and " +
((this.description == "") ? "" : ("description:" + this.description + " ")) +
")";
} , this)
};
但是mydunamicfield
属性没有产生正确的连接结果。如果我尝试在另一个函数中引用this.description()
,我会在页面加载时看到以下错误消息:
Property 'description' of object [object Window] is not a function
在这种情况下有什么问题?
答案 0 :(得分:15)
首先,如果您希望获得其值,则必须将this.description
引用为this.description()
。
其次,请尝试将computed
字段放在viewModel
之外('this'
viewModel
,computed
本身并未在您创建{{{1}}时定义{1}}可观察到。
有关工作示例,请参阅http://jsfiddle.net/rAEqK/2/。