Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 敲除不将Json绑定到多个Select_Javascript_Json_Knockout.js - Fatal编程技术网

Javascript 敲除不将Json绑定到多个Select

Javascript 敲除不将Json绑定到多个Select,javascript,json,knockout.js,Javascript,Json,Knockout.js,我无法使用Knockout将json数据绑定到选择列表。所发生的是,选择列表是为每个json记录创建的,但它不会将任何数据绑定到列表。本质上,这是一堆空选项。在applyBindings()之后,我甚至可以通过控制台看到视图模型中的数据,因此我知道数据就在那里。我是新手,所以我可能错过了什么。请帮忙 var resources = [{"Resource":{"Id":1,"Name":"Bob"}},{"Resource":{"Id":2,"Name":"Jim"}}]; var viewM

我无法使用Knockout将json数据绑定到选择列表。所发生的是,选择列表是为每个json记录创建的,但它不会将任何数据绑定到列表。本质上,这是一堆空选项。在applyBindings()之后,我甚至可以通过控制台看到视图模型中的数据,因此我知道数据就在那里。我是新手,所以我可能错过了什么。请帮忙

var resources = [{"Resource":{"Id":1,"Name":"Bob"}},{"Resource":{"Id":2,"Name":"Jim"}}];

var viewModel = { resourceList: ko.observableArray(resources)}
ko.applyBindings(viewModel);


<select multiple="multiple" data-bind="options: resourceList, optionsText: 'Name', optionsValue: 'Id'">
var resources=[{“Resource”:{“Id”:1,“Name”:“Bob”},{“Resource”:{“Id”:2,“Name”:“Jim”}];
var viewModel={resourceList:ko.observableArray(资源)}
应用绑定(视图模型);

您的
资源列表中的对象不包含
名称
Id
属性,它们包含一个包含属性的
资源
对象

您需要将每个资源投影到这些对象并绑定到这些对象:

var viewModel = {
    resourceList: ko.observableArray(resources),
    resourceListProjection: ko.dependentObservable(function () {
        return ko.utils.arrayMap(this.resourceList(), function (o) {
            return o.Resource;
        });
    }, viewModel);
};
或创建访问器函数以获取适当的属性

<select multiple="multiple"
    data-bind="options: resourceList,
               optionsText: function (o) { return o.Resource.Name; },
               optionsValue: function (o) { return o.Resource.Id; }">