默认的$ resource POST数据

Nim*_*aen 15 javascript angularjs

这可能很奇怪,但我需要使用模块的工厂方法为我的$ resource指定一些默认的POST数据.

有没有人知道如何在AngularJS中做到这一点?

编辑:

好吧,我想做这样的事情:

/**
 * Module declaration.
 * @type {Object}
 */
var services = angular.module("services", ["ngResource"]);

/**
 * Product handler service
 */
services.factory("Product", function($resource) {
    return $resource("http://someUrl", {}, {
        get   : {method: "GET", params: {productId: "-1"}},
        update: {method : "POST", params:{}, data: {someDataKey: someDataValue}}
    });
});

数据是我未来POST请求的默认数据.

Bog*_*bak 19

这不是一种有角度的方式来做这样的事情,因为如果你这样做会丢失数据一致性并且它没有反映在你的模型中.

为什么?

资源工厂创建对象并将对象实例数据用作POST.我查看了文档和angular-resource.js,似乎没有办法为资源创建的对象指定任何默认的自定义属性,而无需修改angular-resource.js.

你能做的是:

services.factory("Product", function($resource) {
    return $resource("http://someUrl", {}, {
        get   : {method: "GET", params: {productId: "-1"}},
        update: {method : "POST"}
    });
});
Run Code Online (Sandbox Code Playgroud)

并在您的控制器中:

$scope.product = {}; // your product data initialization stuff
$scope.product.someDataKey = 'someDataValue'; // add your default data

var product = new Product($scope.product);
product.$update();
Run Code Online (Sandbox Code Playgroud)