2016-03-29 4 views
0

このコンテンツはすべてFirebaseから引き出されているので、あらかじめ定義されているわけではありません(動的です)。2 ng-repeatsの中のモデルをどこからでもアクセスできるようにする

{{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> 

あなたは私がinputs.field[field.$id] NG-モデルを表示しようとしている2ヶ所があるに気付いた場合、それのNGリピートと外側の内部で、それが内部に正しく表示されるが、何も外に現れていません。 $parent.inputs.field[field.$id])私は内部変数をどこでも(無制限のレベルまで)アクセス可能にし、同じ変数名で(しかもユニークでも)アクセスできるようにする方法が必要です。 。

+0

であなたは$インデックス – YOU

+0

を使用することができ、私は '$のindex.inputs.field [フィールド。$ IDを]'しようと、それはどこでも、残念ながら – Jordash

答えて

0

ng-repeatのスコープ内で定義された項目は、ループ内で定義された変数がループ外でどのようにアクセスできないかのような範囲外ではアクセスできません。あなたは基本的にこれをやろうとしています:

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

alert(R); 

サイドノートでは、$ parentをチェーンすることができます。

1

JSのコントローラレベルで変数を宣言します。

FireBaseCtrlとし、最初に$scope.inputs = {}と定義します。

そして、あなたのビューの使用FireBaseCtrl.inputs.field[field.$id]

+0

現れなかったのFireBaseCtrl名前ですコントローラー? – Jordash

+0

FireBaseCtrlはあなたのコントローラです(またはコントローラのエイリアスを言うことができます) – atinder

関連する問題