Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS和Restangular,正在尝试将更新方法转换为API_Javascript_Angularjs_Foreach_Restangular_Data Manipulation - Fatal编程技术网

Javascript AngularJS和Restangular,正在尝试将更新方法转换为API

Javascript AngularJS和Restangular,正在尝试将更新方法转换为API,javascript,angularjs,foreach,restangular,data-manipulation,Javascript,Angularjs,Foreach,Restangular,Data Manipulation,我正在尝试将我的基本crud操作转换成一个API,我的应用程序的多个组件都可以使用 我已经成功地转换了所有方法,除了update方法,因为它要求在执行put请求之前声明对象上的每个属性 控制器 $scope.update = function(testimonial, id) { var data = { name: testimonial.name, message: testimonial.message }; dataService.

我正在尝试将我的基本crud操作转换成一个API,我的应用程序的多个组件都可以使用

我已经成功地转换了所有方法,除了update方法,因为它要求在执行put请求之前声明对象上的每个属性

控制器

$scope.update = function(testimonial, id) {
    var data = {
        name: testimonial.name,
        message: testimonial.message
    };
    dataService.update(uri, data, $scope.id).then(function(response) {
        console.log('Successfully updated!');
    }, 
    function(error) {
        console.log('Error updating.');
    });
}
数据服务

dataService.update = function(uri, data, id) {
    var rest = Restangular.one(uri, id);

    angular.forEach(data, function(value, key) {
        // needs to be in the format below
        // rest.key = data.key
    });

    // needs to output something like this, depending on what the data is passed
    // rest.name = data.name;
    // rest.message = data.message;

    return rest.put();
}
我试图在代码注释中描述这个问题,但重申一下,我不知道如何生成类似
rest.name=data.name
下面是在我开始尝试让我的任何组件都可以使用update方法之前的样子(这很有效)

在没有任何硬编码的特定属性参数的情况下,如何重新创建它

另外,我的项目包括了lo dash,如果这有帮助的话,我不知道从哪里开始解决这个问题。非常感谢你的建议

试试看

angular.extend(rest,testimonial) 

尝试像angular.extend(休息,证明)感谢@Whisher我从来没有使用过
angular.extend
,它工作得很好,如果你把它写在回答中,我会接受的。
angular.extend(rest,testimonial)