2016-07-27 46 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