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
-partは、正しくシリアル化されていません。
どうすればこれを修正できますか?