AngularJS:检查来自$ resource factory的请求体

时间:2017-01-31 14:29:49

标签: angularjs post factory

这无疑是一个初学者的问题 - 事实上我的谷歌搜索并没有给我很多建议,我试图做一些我不应该做的事情!但我正在努力思考下一步要做什么......

基本上我有一个对象,我想发布到REST API,它看起来像这样:

build = {
    "hostname": "server1",
    "id": "589077a935a68f3b16162460",
    "osedition": "577503af1dde347724d1b83e" 
}

....并且根据osedition值,需要发布的URL是/api/v0.1/builds或/api/v0.2/builds。这篇文章目前正在使用这家工厂完成:

app.factory("BuildWrite", function($resource) {
    return $resource("/api/v:apiVer/builds/:id", {apiVer: "@apiVer"}, {
        patch: {method: "PATCH"},
        save:  {method: "POST"}
    });
});

...我用控制器从控制器调用工厂:

if (build.osedition == “blah”) {
    var apiVer = "0.1";
} else {
    var apiVer = “0.2”;
}
BuildWrite.save({apiVer: apiVer}, build).$promise.then( … )

这样工作正常,但是因为这个工厂是从几个地方/控制器调用的,所以我认为如果我可以通过将工厂设置为apiVer来将$resource设置为工厂本身,那将会更加简洁。在返回app.factory("BuildWrite", function($resource) { if (data.osedition == “blah”) { var apiVer = "0.1"; } else { var apiVer = “0.2”; } return $resource("/api/v” + apiVer + “/builds/:id", {}, { patch: {method: "PATCH"}, save: {method: "POST"} }); }); 函数之前检查POST请求的有效负载。像这样:

data

显然7;7;52*8 8;8;62*5 9;9;55*1 11;7;52*49 12;8;62*64 14;9;54*62 在这里是未定义的,但是我已经尝试了很多方法,并且无法解决如何从工厂内访问请求有效负载......它甚至可能吗?我完全错误地采取了这种方式吗?

任何帮助都将非常感谢。

0 个答案:

没有答案