我有一些問題。選擇AngularJs的問題
有在我的範圍2個對象: 1)
tasks:
12:
id: 12
user_id: 1
2)
users:
1:
id: 1
username: sergey
我試圖渲染與選擇默認值(在這個例子中它必須是布林) :
<select class="form-control"
data-ng-model="tasks[task.id].user_id"
data-ng-change="setWorker(task.id)"
>
<option data-ng-repeat="user in users" data-ng-value="user.id" data-ng-selected="{[{user.id == task.user_id}]}">{[{user.username}]}</option>
</select>
但它完成了2個錯誤(我的問題): 1)在我選擇默認值是空的選項 2)在我的選擇有一個額外的選項O_O像:
<option value="? number:4 ?"></option>
開始我以爲發生了,因爲服務器響應包含的承諾。我解決了這個用的toJSON我所有的數據,例如:
$scope.users = data.toJSON();
也對我有第三個問題: 我的數據和查詢成功更新到我的服務器,例如試圖在任務改變USER_ID後,我想更新我的範圍,我這樣做:
$scope.tasks[taksId].user_id = userId;
之後,我要執行我自己的功能測試(),我試圖通過觀察者做到這一點:
$scope.$watch('tasks', function() {
$scope.test();
})
但沒有發生。你有什麼想法嗎? = \
'?編號:4?'部分只是一個有角度的內部事物,告訴它值(4)來自數字類型,所以當你將它綁定到'ngModel'時,你會得到'$ scope.tasks [task.id]。 user_id === 4'(number)而不是'$ scope.tasks [task.id] .user_id ===「4」'(string) –
那麼,我該如何逃避它呢?我只想通過task_id從任務綁定到ngModel我的task.user_id。它看起來很簡單,但沒有用。我嘗試以不同的方式呈現此選擇,但隨時失敗( – Neversmile
我認爲您可以嘗試刪除'data-ng-selected =「{[{user.id == task.user_id}]}」'並將其替換爲'data-ng-init =「tasks [task.id] .user_id =(user.id == task.user_id)?user.id:tasks [task.id] .user_id」' –