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 modelfamily
,它引用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“
@Vineetparent
是$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