我正在开发在线仪表板。该仪表板有一个页面,其中包含与某个项目相关的所有任务。每个任务都有诸如为任务预订的小时数和进度(0 到 100%)等字段。
可以更改进度字段,因为它包含一个包含所有可能百分比的下拉菜单。我曾经更改进度,选择我更改的每一行并单击“更新任务”按钮以将它们发送到我的 Controller 并更新它们。这很好,直到我的一位同事想出了一旦进度字段的值发生变化就自动更新任务的想法。我可以在每个值上放置一个 ng-click
,它会在我更改值时立即激活。
但是我的问题是,我怎样才能让我的 Controller 知道我当时在哪一行工作。假设我有 3 个不同的任务并更改任务 2 的进度。我的 Controller 应该知道它必须将任务 2 的 ID 发送到服务器以更新其内容。
一旦任务 2 的值更改为(例如 30%),updateTaskById() 方法就会执行。此方法应使用新值更新数据库中的任务。我如何让我的 Controller 知道它必须更新什么任务。
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>
Angular Controller :
$scope.updateTaskById = function() {
// Update functionality here
};
提前致谢,我希望我的问题足够清楚。
编辑:如 Alexandru 的回答所示,可以发送我从 ng-click
更改的任务的值。例如:updateTaskById(task.task_id)
。
最佳答案
您可以将值传递给 ng-click
方法。例如,
<md-option value="0" ng-click="updateTaskById(0)">0%</md-option>
JS
$scope.updateTaskById(value){
console.log(value);
}
关于javascript - AngularJS - 在更新字段后在 ng-repeat 中查找对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43738372/