2016-07-27 76 views
0

數據庫(以.json)設置選擇選項:如何利用火力數據庫和NG-重複

{ 
    "permissionLevels" : { 
    "Admin" : { 
     "Comment Access" : "value", 
     "Page Access" : "value", 
     "Post Access" : "value" 
    }, 
    "Default" : { 
     "Comment Access" : "value", 
     "Page Access" : "value", 
     "Post Access" : "value" 
    }, 
    "Template" : { 
     "Comment Access" : "value", 
     "Page Access" : "value", 
     "Post Access" : "value" 
    } 
    }, 
    "users" : { 
    "User 1" : { 
     "Email" : "[email protected]", 
     "Name" : "User 1", 
     "PhotoURL" : "https://lh5.googleusercontent.com/-m1_AWD2hhp0/AAAAAAAAAAI/AAAAAAAAAZY/IhIwoLVwl6U/s96-c/photo.jpg", 
     "Role" : "Default", 
     "uid" : "1235" 
    }, 
    "User 2" : { 
     "Email" : "[email protected]", 
     "Name" : "User 2", 
     "Role" : "Default", 
     "uid" : "1236" 
    }, 
    "User 3" : { 
     "Email" : "[email protected]", 
     "Name" : "User 3", 
     "PhotoURL" : "https://lh5.googleusercontent.com/-m1_AWD2hhp0/AAAAAAAAAAI/AAAAAAAAAZY/IhIwoLVwl6U/s96-c/photo.jpg", 
     "Role" : "Admin", 
     "uid" : "1237" 
    } 
    } 
} 

HTML:

<table id="table"> 
    <tr> 
    <th>Name</th> 
    <th>Email</th> 
    <th>Permission Level</th> 
    </tr> 
    <tr ng-repeat="(key, value) in users"> 
    <td>{{value.Name}}</td> 
    <td>{{value.Email}}</td> 
    <td> 
     <select name="{{key}}"> 
     <option ng-model="key">{{value.Role}}</option> 
     <option ng-repeat="(permissionLevel, permissions) in permissionLevels.permissionLevels" ng-if="permissionLevel!=value.Role && permissionLevel!='Template'" ng-selected="string">{{permissionLevel}}</option> 
     </select> 
    </td> 
    </tr> 
</table><br/> 

我想要做的是與每個用戶的名稱顯示錶,電子郵件和角色(權限級別)。每個人的角色應顯示在<select></select>標籤中,用戶應能夠更改並單擊「更新全部」以保存更改。我得到了表格以正確顯示所有內容,但問題是從表格和數據庫中獲取信息。這是我迄今在table

如果你想知道,我希望它忽略「模板」角色,因爲它在那裏用作模板供以後使用。

+0

因此,您的問題是否試圖保存您在當前顯示的數據中所做的更改?你到目前爲止嘗試過什麼? – adolfosrs

回答

0

$firebaseArray$firebaseObject具有3路數據綁定。視圖,控制器和數據庫。

var ref = firebase.database().ref("users"); 
// var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com/users"); 
$scope.users = $firebaseArray(ref); 

當你點擊「更新」時,你需要遍歷所有改變角色的記錄並且$save。當點擊 「更新」 就可以調用一些功能

$scope.permissionLevels = [ 
    { 
     value: "Default", 
     label: "Default", 
    }, 
    { 
     value: "Admin", 
     label: "Admin", 
    } 
]; 

然後:

$scope.update = function() { 
    for(var i=0; i<$scope.users.length; i++) { 
     // Saves all 
     $scope.users.$save(i).then(function(ref) { 
      // whatever 
     }) 
    } 
} 

首先,我會改變你的select到:

<select name="{{key}}" ng-options="p.value as p.label for p in permissionLevels" ng-model="value.Role"> 
</select> 

假設你有角色數組

參考:$firebaseArray $save