在2 ng重复内部制作模型可在任何地方访问

时间:2016-03-29 01:59:11

标签: javascript angularjs

此内容全部来自Firebase,因此未预先定义(它是动态的)。

{{inputs.field[field.$id]}}
<div ng-repeat="field in fields | filter:{fieldID:field.$id}">
    {{field.label}}
    <div ng-repeat="choice in choices | filter:{fieldID:field.$id}">
        <input type="text" ng-model="inputs.field[field.$id]">
        {{inputs.field[field.$id]}}
    </div>
</div>

如果您注意到有2个地方我尝试显示inputs.field[field.$id] ng模型,在ng-repeat内部和外部,它会在内部正确显示,但没有任何显示在外面。

我尝试了$parent调用,但这只能达到一个级别(例如:$parent.inputs.field[field.$id])我需要一种方法使内部变量可以随处访问(无限级别)并且可以通过相同的方式访问变量名(但也是唯一的)。

2 个答案:

答案 0 :(得分:1)

在JS中声明控制器级别的变量。

假设您有FireBaseCtrl,然后先在其中定义$scope.inputs = {}

在您的观点中使用FireBaseCtrl.inputs.field[field.$id]

答案 1 :(得分:0)

我的理解是,在ng-repeat范围内定义的项目在范围之外是不可访问的,类似于循环内定义的变量在循环外不可访问的方式。你实际上是在尝试这样做:

for (R in Looper) {
  //do something
}

alert(R);

在旁注中,您可以链接$ parent。