13

我有以下 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

在这种情况下有什么问题?

4

1 回答 1

18

首先,您必须this.descriptionthis.description()要获取其值一样引用。

其次,尝试将您的computed字段放在您的之外viewModel(因为在您创建observable时没有定义'this'viewModel本身。computed

有关工作示例,请参见http://jsfiddle.net/rAEqK/2/ 。

于 2012-06-15T09:17:48.880 回答