Javascript 敲除pureComputed错误绑定

Javascript 敲除pureComputed错误绑定,javascript,knockout.js,Javascript,Knockout.js,我有以下代码: var AddressModel = function (list) { var self = this; self.selectedItem = ko.observable(null); self.list = ko.observableArray(ko.utils.arrayMap(list, function (item) { return { firstName: item.firstName,

我有以下代码:

var AddressModel = function (list) {
    var self = this;

    self.selectedItem = ko.observable(null);

    self.list = ko.observableArray(ko.utils.arrayMap(list, function (item) {
        return {
            firstName: item.firstName,
            lastName: item.lastName,
            address: item.address
        };
    }));

    self.Test = ko.pureComputed(function () {
        var firstname = self.selectedItem().firstName;
    }
};

ko.applyBindings(new AddressModel(initialData));
当我运行代码时,在测试函数中我得到以下错误:

未捕获类型错误:无法处理绑定“value:function(){return ViewModelToJSON}” 消息:无法读取未定义的属性“firstName”

但是如果我在测试中放入
self.selectedItem()
,我会得到所有项的属性,但我只想要名字

InitialData是一个简单的json:

var initialData = [
    {
        firstName: "Jimmy",
        lastName: "Jimbo",
        address: "111 Jimmy's Street, Jimtown"
    },
    {
        firstName: "Don",
        lastName: "Mob boss",
        address: "222 Mafia Street, Jimtown"
    }
];

有人能帮我吗?

当您定义一个computed时,它会运行其内部函数一次,以获取其初始值并计算依赖项

这意味着您的计算值必须能够在定义时正确计算

在您的情况下,会发生以下情况:

self.selectedItem = ko.observable(null);
self.Test = ko.pureComputed(function () {
  var firstname = /* self.selectedItem() */ null.firstName;
}
这会引发一个错误:

var选择=null;
试一试{
选择。名字
}捕捉(错误){
控制台日志(错误消息);

}
您能发布完整的javascript代码吗?仅此而已,initialData是一个简单的json:var initialData=[{名字:“吉米”,名字:“吉姆博”,地址:“吉姆敦吉米街111号”},{名字:“唐”,名字:“暴徒老板”,地址:“吉姆敦黑手党街222号”};您需要检查
null
,因为最初,
selectedItem
null
,并且没有
firstName
属性。您可以将
self.selectedItem
设置为
null
,并且您设置的任何地方都没有设置
self.selectedItem
的值。那么,如何通过调用这个
self.selectedItem()
来获取所有属性呢?您是否从其他地方为
selectedItem
设置值?