Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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 ng选项及;ng重复:为什么角度模型不是';不能束缚?_Javascript_Angularjs - Fatal编程技术网

Javascript ng选项及;ng重复:为什么角度模型不是';不能束缚?

Javascript ng选项及;ng重复:为什么角度模型不是';不能束缚?,javascript,angularjs,Javascript,Angularjs,当我将select元素绑定到ng modelfamily,它引用font.families数组的元素时,Angular不会绑定所选的元素。数组保持为空,只有第一个null元素 但是当我将select元素绑定到font.families[$index]时,绑定是有效的 //Javascript $scope.font.families=[null];//用于在窗体中创建空的第一行 $scope.families=[ {name:“Foo”,parent:“Bar”}, {名字:“Doo”,父母:“

当我将
select
元素绑定到ng model
family
,它引用
font.families
数组的元素时,Angular不会绑定所选的元素。数组保持为空,只有第一个
null
元素

但是当我将
select
元素绑定到
font.families[$index]
时,绑定是有效的

//Javascript
$scope.font.families=[null];//用于在窗体中创建空的第一行
$scope.families=[
{name:“Foo”,parent:“Bar”},
{名字:“Doo”,父母:“Dar”}
];
$scope.main系列=[
{姓名:“酒吧”,儿童:[“Foo”,“Baz”]},
{姓名:“达尔”,儿童:[“嘟嘟”,“呼”]}
];

字体系列:{{Font.families}
家族:{{Family}
—
—
来说明这个问题


怎么回事?以下是我对这个问题的理解:
案例1(有效):您使用的是ng model=“model.families[$index]”。在这种情况下,当您进行选择时,会发生以下情况:

model.families[0] -> Your selection
案例2(不工作):您正在使用ng model=“family”。在这种情况下,情况就是这样:

family -> model.families[0] -> null
进行选择时: 族->新选择

model.families[0] -> null
问题是,在第二种情况下,赋值会导致族变量被全部赋值,而源数组保持不变

您可以通过在html中添加以下语句来进一步验证这一点:

family: {{family}}  
model.families: {{model.families[$index]}}
Are they equal?: {{familly === model.families[$index]}} 

ng model=“font.families[$index]”中使用
$parent
。parent“
将是
ng model=“font.families[$index]”。$parent“
@Vineet
parent
$scope.families
对象的属性,而不是角度变量OK。看了你的演讲后我明白了是的,但为什么?为什么
family
model.families[$index]
分离?family只是一个指向数组中某个项的变量。任何变量都可以指向不同的对象。如果使族指向其他对象,则它将不再连接到model.families。然而,当您使用$index时,实际上是将model.families[$index]指向新对象。这就是你想要做的。而且,这与角度或角度无关。您可以使用for循环在简单的JavaScript中模拟相同的行为。我明白了,但我想知道为什么
family
没有像预期的那样指向
model.families[$index]
。它应该是
null
,除非我给它分配一个新值,在我的例子中是一个对象,你同意吗?也许这会有帮助:stackoverflow.com/questions/17872317/javascript-variables-as-object-pointers