我是AngularJS的新手,我試圖從純服務器端移動到在前端使用AngularJS實時實現魔術。AngularJS重新填充用於編輯的複選框
我有一個用戶可以擁有多個權限。當創建一個新用戶時,你可以選擇多個複選框,一切正常。當用戶想要更改用戶的權限時,我無法重新填充複選框。
我使用的清單模型的指令,在這裏找到http://vitalets.github.io/checklist-model/
在數據庫中,我有一個用戶,權限和users_permissions表。
UsersController -Laravel
public function show($id)
{
$user = User::with('permissions')->find($id);
return $user;
}
UserController的-Angular
Users.controller('UserController', ['$scope', '$routeParams', 'User', 'Permission', function($scope, $routeParams, User, Permission) {
$scope.user = User.get({ id: $routeParams.id });
$scope.permissions = Permission.query();
}]);
因爲我重視的權限對服務器端的用戶,當我console.log($scope.user)
我得到這個對象
現在的視圖
單user.html
<h4>Manage Permissions</h4>
<div class="form-group">
<label ng-repeat="permission in permissions">
<input type="checkbox" checklist-model="user.permissions" checklist-value="permission.id" class="checkbox-inline">
{{ permission.display_name }}
</label>
</div>
<button class="btn btn-success" type="submit">Save</button>
我認爲我可以創建在包含所述$scope.user.permissions.id
控制器分配的變量,然後抵靠$scope.permissions.id
比較這些值如果他們匹配,然後檢查複選框。
當我試圖創建$scope.assigned = $scope.user.permissions.id
和console.log(分配),然後我剛剛返回undefined。
我不知道如何創建一個分配的權限數組來比較標準權限,感謝您的任何建議。
這兩種解決方案都無效,但您對承諾的看法是有道理的。我相信這是朝正確方向邁出的一步,謝謝@ scottt732 –