Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Knockout.js 选择无法选择初始值_Knockout.js - Fatal编程技术网

Knockout.js 选择无法选择初始值

Knockout.js 选择无法选择初始值,knockout.js,Knockout.js,我有一个使用JSON通过WepAPI获得的地址列表,比如: data1 = [ { address1 :"# 16 6 forks", state: 'NC' }, { address1 :' 17 6 forks" , state: 'NY'}, { address1 :'18 forks", state: 'AL'} ] 还有像这样的州的名单: data2 = [ {id:1

我有一个使用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]));
  }
}
我的期望是,当html呈现时,地址中的适当状态项应被选择为初始值,例如,在第一个地址的情况下为“NC”,但它会显示“NY”,这是状态对象中的第一个元素

在调试过程中,我发现当addresses变量通过ko.mappingfromJS分配时,它被分配为“undefined”,然后在此代码之后,当states变量填充state时,top address的状态被分配为states对象的>第一个元素。这就是我通过在地址和状态对象从JSON填充之前和之后放置一些控制台日志所观察到的

我被困在这里了。在此方面的任何帮助都将不胜感激


如果您的数据确实是:

data1 =
[ 
        {   address1  :'# 16  6 forks' ,      state:   'NC' },
        {   address1  :'17 6 forks" ,        state:   'NY'},
        {   address1  :'18 forks",            state:   'AL'}
]
它是格式不正确的数据,不会正常工作。其中有不匹配的引号(A
与A
)成对出现


如果它只是一个输入错误,你应该在你的问题中解决它。

数据从哪里来,我看到了
data1
&
data2
?我通过API的ajax调用和mapp将其转换为数组格式。你能显示所有的代码吗?这个问题在改变了从t获取地址和状态对象的顺序后现在为我解决了服务器。我先填充了state对象,然后填充了address对象。但是问题似乎出在Ko.mapping.fromJS上,这使得address.state变量无法定义。值得一提的是,address对象有三个地址数组,每个数组都具有相同的状态。
data1 =
[ 
        {   address1  :'# 16  6 forks' ,      state:   'NC' },
        {   address1  :'17 6 forks" ,        state:   'NY'},
        {   address1  :'18 forks",            state:   'AL'}
]