我正在使用在線儀表板。該儀表板有一個由與某個項目相關的所有任務組成的頁面。每個任務都有一些字段,例如預定給任務的小時數以及進度(從0到100%)。AngularJS - 更新字段後在ng-repeat中查找對象
它是可以改變的進展場,因爲它包括了所有可能的百分比的下拉菜單中。我曾經改變進度,選擇每一行,我修改並點擊'更新任務'按鈕,以便將它們發送給我的控制器並更新它們。這一直沒有問題,直到我的同事提出一旦進度字段的值被更改後自動更新任務的想法。每改變一次數值,我就可以在每一個激活的值上放置一個ng-click
。
但是我的問題是,我該如何讓我的控制器知道在那一刻我正在工作的行。假設我有3個不同的任務並更改了任務2的進度。我的控制器應該知道它必須將任務2的ID發送到服務器以更新其內容。
只要任務2的值更改爲例如30%,updateTaskById()方法就會執行。此方法應使用新值更新數據庫中的任務。我如何讓我的控制器知道它需要更新什麼任務。
HTML
<td md-cell class="tdWidth">
<md-select ng-model="task.custom_fields['96203']" placeholder="100%">
<md-option value="0" ng-click="updateTaskById()">0%</md-option>
<md-option value="0.1" ng-click="updateTaskById()">10%</md-option>
<md-option value="0.2" ng-click="updateTaskById()">20%</md-option>
<md-option value="0.3" ng-click="updateTaskById()">30%</md-option>
<md-option value="0.4" ng-click="updateTaskById()">40%</md-option>
<md-option value="0.5" ng-click="updateTaskById()">50%</md-option>
<md-option value="0.6" ng-click="updateTaskById()">60%</md-option>
<md-option value="0.7" ng-click="updateTaskById()">70%</md-option>
<md-option value="0.8" ng-click="updateTaskById()">80%</md-option>
<md-option value="0.9" ng-click="updateTaskById()">90%</md-option>
<md-option value="1" ng-click="updateTaskById()">100%</md-option>
</md-select>
</td>
角控制器:
$scope.updateTaskById = function() {
// Update functionality here
};
在此先感謝,我希望我的問題是非常明顯的。
編輯:在亞歷山德魯的答案中可以看到,我發送的任務值是從ng-click
改變的。例如:updateTaskById(task.task_id)
。
這是一個有點很難理解你正在努力實現無代碼 – Mistalis
什麼@Mistalis我已經更新的問題,試圖使之成爲可能的未來更清晰參考 – Lesleyvdp