繁体   English   中英

淘汰赛js observableArray无法正常工作

[英]knockout js observableArray is not working

嗨,我正在尝试使用observableArray做foreach,但没有任何结果。

在调试文件时,如javascript文件中的数据将随数组加载。 html代码如下:

<!-- ko foreach: currencyarr -->
    <option data-bind="value:id, text:label"></option>
<!-- /ko -->

JSON文件内容如下:

"name" : "shuvagho",
"curarr" : [
            {"id": "inr", "label": "INR"},
            {"id": "usd", "label": "USD"},
            {"id": "aud", "label": "AUD"},
            {"id": "sgd", "label": "SGD"}
]

使用淘汰赛js的javascript代码如下:

self.currencyarr = ko.observableArray();
self.currencyarr(data.curarr);

您忘记在foreach中使用$ data了。

  var ViewModel = function(){ var self = this; self.currencyarr = ko.observableArray(); self.currencyarr(data.curarr); } var data = { "name" : "shuvagho", "curarr" : [ {"id": "inr", "label": "INR"}, {"id": "usd", "label": "USD"}, {"id": "aud", "label": "AUD"}, {"id": "sgd", "label": "SGD"} ]}; var viewModel = new ViewModel(); ko.applyBindings(viewModel); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> <select> <!--ko foreach: currencyarr--> <option data-bind="text:$data.label, value:$data.id" ></option> <!--/ko--> </select> 

您也可以将选择标签中的选项绑定在一起。

 var ViewModel = function(){ var self = this; self.currencyarr = ko.observableArray(); self.currencyarr(data.curarr); } var data = { "name" : "shuvagho", "curarr" : [ {"id": "inr", "label": "INR"}, {"id": "usd", "label": "USD"}, {"id": "aud", "label": "AUD"}, {"id": "sgd", "label": "SGD"} ]}; var viewModel = new ViewModel(); ko.applyBindings(viewModel); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> <select data-bind="options:$root.currencyarr, optionsText: 'label',optionsValue:'id'"></select> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM