2016-04-19 2 views
0

私はAngularで扱いたい複雑な機能(ドラッグ・アンド・ドロップ、要素のグループの削除、要素のグループの追加)を持つformを持っています。 フォームは既にレンダリングされており、元の値が設定されています。ビューの値から角度をつけてモデルを作成することはできますか?

<form> 
    <div> 
     <input ng-model="rule[0].rule" value="bar"> 
     <select ng-model="rule[0].value"> 
      <option>A</option> 
      <option selected>B</option> 
     </select> 
    </div> 
    <div> 
     <input ng-model="rule[1].rule" value="foo"> 
     <select ng-model="rule[1].value"> 
      <option selected>1</option> 
      <option>2</option> 
     </select> 
    </div> 
    ... 
</form> 

問題は、角度は、これらの値を無効と$scopeにはrule配列を作成しないことです。私が欲しいのは、私のテンプレートの値からオブジェクトの配列ruleを作成することです。

私の要求は、データがテンプレートによって提供される方法でMVCパターンに違反することを理解しています。それにもかかわらず、私は過度のデータ・パーシングを避けたいと思います。

ありがとうございました

答えて

0

クイックアンサー:いいえ、できません。

$ scope.ruleをコントローラで配列として定義してから、ビューで使用することができます。あなたは$scopeに何も追加することができませんビューで

$scope.rule = []; 

...

+0

明らかに私はできません – VladRia

0

フォームのコードの2回の非常に類似した個展に出せるがあり、おそらくあなたはより多くを配置します。コントローラー内のすべての表現をホストし、そこから作成するだけです。あなたのための例を見せてください。

ビュー

<div ng-repeat="item in options"> 
    <input ng-model="item.rule"> 
    <select ng-model="item.value"> 
     <option ng-repeat="option in item.options" ng-value="option">{{option}}</option> 
    </select> 
    <span>{{item.value}}</span> 
    </div> 

コントローラ

$scope.options = [{ 
    value: 'B', 
    rule: 'foo', 
    options: ['A', 'B'] 
    }, { 
    value: 2, 
    rule: 'bar', 
    options: [1, 2] 
    }]; 

https://jsfiddle.net/rzadc03v/

それはあなたを助けることを願っています!

関連する問題