数据绑定意外地给出了未定义的值

时间:2013-05-15 19:06:51

标签: knockout.js

当我将computed属性添加到viewModel时,我的绑定不再起作用了。没有computed属性我没有问题。我的代码:

var orgData =  @Html.Raw(Json.Encode(Model));             
    var viewModel = {
        myData: ko.observable(orgData) ,
        displayTag: ko.computed(function() {
            return "(" +  orgData.Tag + ")";
        }, this)
     };

ko.applyBindings(viewModel);

并在html中,我的绑定如下:

data-bind="text: myData.SerialNumber"

即使JSON数据看起来很好,该值也是undefined

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

由于这是一个计算的observable,所以将你的计算函数重写为:

displayTag: ko.computed(function(){
   var data = this.myData();
   return "(" + data.Tag + ")";
}, this)

这样,如果myData更新,您的计算机将更新。目前,情况并非如此。 如果您仍然在显示屏中看到未定义,请验证data.Tag是否有值。