angularjs:ng重复不使用父作用域属性
在子控制器中,我正在父作用域上填充数组:angularjs:ng重复不使用父作用域属性,angularjs,angularjs-ng-repeat,Angularjs,Angularjs Ng Repeat,在子控制器中,我正在父作用域上填充数组: $scope.person.testArray = [{id: "test"},{id: "test2"}]; 这很好,person属性现在有一个名为testArray的额外属性,它包含上述值 然后在与子控制器关联的视图中,我想显示数组的值: <div ng-repeat="op in person.testArray"> {{op.id}} </div> 然后在我看来: {{person.test}} 它显示字符串“t
$scope.person.testArray = [{id: "test"},{id: "test2"}];
这很好,person属性现在有一个名为testArray的额外属性,它包含上述值
然后在与子控制器关联的视图中,我想显示数组的值:
<div ng-repeat="op in person.testArray">
{{op.id}}
</div>
然后在我看来:
{{person.test}}
它显示字符串“test”
ng repeat有什么不对?您不应该在子控制器中使用
$parent
,因为子控制器的$scope
来自父控制器的$scope
:
函数ParentCtrl($scope){
$scope.person={};
}
函数ChildCtrl($scope){
$scope.person.testArray=[{id:“test”},{id:“test2”}];
}
HTML:
{{op.id}}
您不应该在子控制器中使用
$parent
,因为子控制器的$scope
来自父控制器的$scope
:
函数ParentCtrl($scope){
$scope.person={};
}
函数ChildCtrl($scope){
$scope.person.testArray=[{id:“test”},{id:“test2”}];
}
HTML:
{{op.id}}
与其他人一样,我建议不要使用$parent,但您应该能够像这样使用ng repeat:
<div ng-repeat="op in $parent.person.testArray">
{{op.id}}
</div>
{{op.id}}
与其他人一样,我建议不要使用$parent,但您应该能够像这样使用ng repeat:
<div ng-repeat="op in $parent.person.testArray">
{{op.id}}
</div>
{{op.id}}
您是否碰巧有一个JSFIDLE或类似的工具演示了这个问题?您是否可以改为使用$parent.person.testArray中的op<代码>$parent
不需要,但只要试一下就行了。另外,您是否可以在无法使用的地方提供plunkr或fiddle?您是否碰巧有一个JSFIDLE或类似的工具来演示此问题?您是否可以改为使用$parent.person.testArray中的op<代码>$parent
不需要,但只要试一下就行了。另外,你能提供一个不起作用的弹弓或小提琴吗?哦,我的错。我的代码中不使用$parent。我无意中在我的帖子中添加了。所以我做的和你做的完全一样,我仍然无法在ng repeat中显示任何内容。我已经在我原来的帖子中更新了代码。@Sam,我们需要查看您的更多代码来帮助您。您可能在ng repeat之前或内部使用了一些角度内置或自定义指令,这些指令可能会创建额外的作用域。我不知道我的申请有什么问题,我得进一步调查。然而,我在我制作的示例中注意到,它不是更新父对象的属性,而是在子范围上创建一个新属性。这是正常的行为吗?我本来希望父作用域的属性会更新,而不是…@Sam,如果没有看到您的示例,很难猜测会发生什么。噢,我的错。我的代码中不使用$parent。我无意中在我的帖子中添加了。所以我做的和你做的完全一样,我仍然无法在ng repeat中显示任何内容。我已经在我原来的帖子中更新了代码。@Sam,我们需要查看您的更多代码来帮助您。您可能在ng repeat之前或内部使用了一些角度内置或自定义指令,这些指令可能会创建额外的作用域。我不知道我的申请有什么问题,我得进一步调查。然而,我在我制作的示例中注意到,它不是更新父对象的属性,而是在子范围上创建一个新属性。这是正常的行为吗?我本以为父作用域的属性会被更新,而不是…@Sam,如果没有看到您的示例,很难猜测会发生什么。