2

我有以下角度代码:

var app = angular.module('app', ['ngResource']);

app.factory('Post', function ($resource) {
    return $resource('/post', {}, {
        query: { method: 'GET', url: '/post/get/:id', params: { id: '@id' } },
        save: { method: 'POST', url: '/post/addorupdate/:id', params: { id: '@id' } },
        delete: { method: 'POST', url: '/post/delete/:id', params: { id: '@id' } }
    });
});

app.controller('appController', function ($scope, Post) {
    $scope.createPost = function () {
        var post = new Post({
            title: "Test post",
            body: "Test body.<br/ >Yay!"
        });
        post.$save();
    };
});

标记如下所示:

<body data-ng-app="app">
    <div data-ng-controller="appController">
        <button ng-click="createPost()">Create Post</button>
    </div>
</body>

当我单击按钮时,它会尝试向服务器发送 POST,但会发送到原始 URL 而不是特定于操作的 URL。请求中的 URL 如下所示:

http://localhost:8080/post?id=undefined

知道为什么它试图发布到 just/post吗?另外,知道为什么id=undefined吗?在其他示例中,如果未指定 ID,则似乎?id=blah只是不包含在请求中。先感谢您。

4

1 回答 1

1

在撰写本文时,这是AngularJS的当前版本(1.0.8)中的一个错误。正在忽略操作覆盖的属性。它已在 1.1.4 版本中修复,并且该修复程序存在于最新的候选版本 (1.2.0)中。ngResourceurl

于 2013-11-06T06:44:12.513 回答