Angular(或JavaScript),创建一个更新字段和刷新列表的按钮

时间:2016-06-13 20:05:00

标签: javascript angularjs angularjs-directive angularjs-scope angularjs-ng-repeat

'use strict';

app.controller("derpCont", function  ($scope,  derptod) {

        $scope.derp = derptod.query();
        $scope.deptod = function() {

            derptod.update()


        };
      });

当我点击按钮时,我可以看到尝试更新某些内容的东西,但是我收到404错误消息,如果我在方法中传递变量,我会得到500个错误。如何在UserTodos.update()中编写方法。所以我只会将{{todo.completed}}从true更新为false,反之亦然使用ngresoruce

这是我的服务

 app.factory('derptod', function($resource) {
        var cray = $resource('jpholder/tod', {
            update: {
                method: 'PUT'
            }
        });
    return cray;
});

2 个答案:

答案 0 :(得分:0)

如果我能正确理解您的问题,您可以更新您的待办事项模型。

$scope.UpdateTodo = function(index) {
  UserTodos.update();
  $scope.todo[index].completed = $scope.todo[index].completed === 'COMPLETED' ? 'INCOMPLETE' : 'COMPLETED';
};

在您的HTML中:

<td> <button type="button" ng-click="UpdateTodo($index)" class="btn btn-info">Update</button> </td>

答案 1 :(得分:0)

首先,您的服务需要使用您尝试调用的“更新”属性返回一个对象...

app.factory('UserTodos', function($resource) {
    var update = function (todos, index, value) {
        // Do Something
        todos[index].completed = value;
    }
    return {
        Update:update
    };
});

其次,如果要修改待办事项,可以在控制器或服务中进行修改。无论哪种方式,我都会将todo的索引传递给控制器​​方法以及像这样的值。

<button type="button" ng-click="UpdateTodo($index, true)" 
                  class="btn btn-info">Update</button>

最后在控制器中,您可以进行操作或将所有内容传递给服务。

$scope.UpdateTodo = function(index, value) {
    // Use the service
    UserTodos.Update($scope.todos, index, value);

    // Or what I would do in a hurry
    $scope.todos[index].completed = value;

};