2016-04-14 12 views
0

通知設定ページを作成しようとしています。基本的に、ユーザーは、特定のモジュールで受信する通知の種類を選択できる必要があります。通知には3種類の通知(電子メール、SMS、UI)があります。現在、私の配列は、私は、このビューを達成しようとしているこのangularjs - リモートデータから制御するチェックボックスステータス

$scope.modules= [ 
     { 
      "id": 1, 
      "name": "Module1", 
      "notifications": [ 
       { 
        "notification": "email" 
       } 
      ] 
     }, 
     { 
      "id": 2, 
      "name": "Module2", 
      "notifications": [ 
       { 
        "notification": "sms" 
       }, 
       { 
        "notification": "ui" 
       } 
      ] 
     } 
    ]; 

ように構築されて

enter image description here

問題:私はたとえば場合、特定のモジュールの通知を繰り返すようにしようとしています {"notification": "email"}は存在しません。チェックボックスはチェックされず、ビューから削除されます。

ng-repeatを実行する方法はありますか?おかげ

JSFiddle

+0

あなたはコードをfiddle/plunkrに置くことができますか? –

+0

@MartijnWelker私の質問を更新しました、フィドルは – Granit

答えて

2

構造が多少間違っています。なぜ、以下のような通知のためのオブジェクトの配列を持たないのですか?

"notifications": [ {"sms": true}, {"email": false}, {"ui": true} ]; 

繰り返しや設定が容易です。

$scope.modulesを反復し、そのようなモジュールごとに、ng-repeat div内に3つのチェックボックスがあります。その後、通知に応じてチェック/チェックを外してnotificationsに設定します。

<span>Email</span> <span>Ui</span> <span>Sms</span> 
<div ng-repeat="module in modules"> 
    {{ module.name }} 
    <div ng-repeat="notification in module.notifications"> 
     <!-- Email --> 
     <input type="checkbox" ng-model="notification.email" /> 
     <!-- Ui --> 
     <input type="checkbox" ng-model="notification.ui" /> 
     <!-- Sms --> 
     <input type="checkbox" ng-model="notification.sms" /> 
    </div> 
</div> 
+0

あなたの答えに感謝しています、私は本当にソリューションが好きですが、私のデータベースに別の列を追加したくない@softvar – Granit

関連する問題