我已经为自己定义了一个用于 Angular.js 的 api:
angular.module('api', ['ngResource'])
.factory('Server', function ($resource) {
return $resource('http://localhost\\:3000/api/servers/:name');
})
.factory('ActiveServer', function ($resource) {
return $resource('http://localhost\\:3000/api/servers/active/:name', {},
{ start: {method: 'POST'}, stop: {method: 'DELETE'} });
});
这个想法是,我有一组已定义的服务器,可通过/api/servers/
uri 使用。可以通过将特定服务器添加到/api/servers/active/
uri 来启动它,并通过删除它来停止它。
在我的控制器中,我有以下代码:
$scope.start = function() {
ActiveServer.start(this.server);
};
$scope.stop = function() {
ActiveServer.stop(this.server);
};
再次由按钮触发
<div class="well span4" ng-repeat="server in servers">
<h1>{{server.definition.name}}</h1>
<span class="label label-info">{{server.status}}</span>
<button type="button" class="btn btn-primary"
ng-click="start()">Start</button>
<button type="button" class="btn btn-primary"
ng-click="stop()">Stop</button>
</div>
启动服务器工作正常,但我无法停止它。上面的代码以以下请求结束:
Request URL:http://localhost:3000/api/servers/active?$$hashKey=005&_events=[object+Object]&definition=[object+Object]&status=ready
Request Method:DELETE
我的definition
服务器对象的 - 部分,包含标识要停止的服务器的名称,没有正确序列化。
我怎样才能解决这个问题?