我有一个使用JSON通过WepAPI获得的地址列表,例如:
data1 =
[
{ address1 :"# 16 6 forks", state: 'NC' },
{ address1 :' 17 6 forks" , state: 'NY'},
{ address1 :'18 forks", state: 'AL'}
]
还列出了这样的州:
data2 = [
{id:1,shortname:'NY',fullname:'New York'},
{id:2 ,shortname:'NC',fullname:'North Carolina'}
{id:3 ,shortname:'AL',fullname:'ALabama'}
]
我将这些数据分别写入地址和状态变量,如下所示:
if (data !== null) {
for (var i = 0; i < 1; i++) {
self.addresses.push(ko.mapping.fromJS(data[i]));
}
}
并声明为
ko.utils.arrayPushAll(self.states, data);
我的期望是,当html渲染时,地址中的相应状态项应该被选为初始值,例如在第一个地址的情况下为'NC',而是显示'NY',这是该州的第一个元素对象
调试时我发现当地址变量通过ko.mappingfromJS分配时,它被指定为'undefined',然后在此代码之后当states变量填充状态时,顶部地址的状态被赋值为&gt ;来自状态对象的第一个元素。这是我通过在地址和状态对象从JSON填充之前和之后放置一些控制台日志而观察到的。
我被困在这里。任何帮助都将不胜感激。
<tbody>
<td data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-icon="arrow-down" data-iconpos="right" data-theme="c">
<td>
<select data-icon="arrow-down"
data-bind="options: $root.states,
value: state,
optionsValue: 'shortstatename',
optionsText: 'statename',
optionsCaption :' '">
</select>
</td>
</td>
</tbody>
答案 0 :(得分:0)
如果您的数据确实是:
data1 =
[
{ address1 :'# 16 6 forks' , state: 'NC' },
{ address1 :'17 6 forks" , state: 'NY'},
{ address1 :'18 forks", state: 'AL'}
]
数据格式错误,表现不佳。您的内容不匹配(A '
与"
配对)。
如果只是一个拼写错误,你应该在你的问题中解决它。