Knockout Components Select Options
我一直在扯头发,有人可以救我吗...
我想创建一个简单的基因剔除组件,该组件基于JSON对象呈现一个选择列表。
当我使用简单的字符串数组时,此方法有效,但是当我使用JSON对象(具有使用optionsText和optionsValue绑定的id和name属性)时,会得到一个带有[object object]的下拉列表。
任何帮助将不胜感激。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | ko.components.register("organization-select", { viewModel: function (params) { var self = this; self.organizationList = ko.observableArray([]); self.organizationList(["foo","bar"]); //this works //this doesn't work Result => [Object Object],[Object Object] self.organizationList([{"id": 1,"name":"foo" }, {"id": 2,"name":"bar" }]); }, template: 'Organizations: <select data-bind="options: organizationList, optionsText:"name", optionsValue:"id""></options>' //this works with simple array of strings //template: 'Organizations: <select data-bind="options: organizationList"></options>' }); ko.applyBindings(); }); |
行情看起来一团糟:
1 2 | template: 'Organizations: <select data-bind="options: organizationList, optionsText:"name", optionsValue:"id""></options>' // Here ------------------------------------^ but then ------------------------------^ |
...因此
1 | data-bind="options: organizationList, optionsText:" |
您需要转义那些嵌入的引号。可能最简单的方法是使用转义的单打:
1 | template: 'Organizations: <select data-bind="options: organizationList, optionsText: \'name\', optionsValue: \'id\'"></options>' |