私のAPIリソースは問題ありません。クラスのすべてを取得して何でも入力できますが、デモの目的で、EngineMakesに関連するAPIリソースを以下に示します。
// EngineMake
GetEngineMakes: { method: 'GET', params: { controller: 'EngineMakes' }, isArray: true },
GetEngineMake: { method: 'GET', params: { controller: 'EngineMakes' } },
AddEngineMake: { method: 'POST', params: { controller: 'EngineMakes' } },
UpdateEngineMake: { method: 'PUT', params: { controller: 'EngineMakes' } },
DeleteEngineMake: { method: 'DELETE', params: { controller: 'EngineMakes' } },
ユーザーが(1)エンジンメーカーを選択してから(2)新しいエンジンモデルを追加できるモーダルフォームがあります。新しいエンジンモデルをスコープにプッシュすることはできますが、それぞれのエンジンメーカーとは関係ありません。
これが私のコードです:
// in engine model controller:
$scope.save = function(data) {
var engineModel = angular.copy($scope.engineModel);
$http.post('/api/EngineModels/', engineModel)
.success(function () {
$rootScope.addEngineModel(engineModel);
})
.error(function(data) {
alert(data);
});
};
// in engine make controller
$rootScope.addEngineModel = function (engineModel) {
the problem ---> $scope.engineMake = API.GetEngineMake({ id: engineModel.FK_EngineMakeId});
$scope.engineMake.EngineModels = $scope.engineMake.EngineModels || [];
$scope.engineMake.EngineModels.push(engineModel);
};
新しいエンジンモデルがデータベースに正常に追加され、スコープに配置されます。
$ rootScope.addEngineModelはヒットし、パラメーターは正しく、FK_EngineMakeIDは正しいです。**
しかし、APIの呼び出しは明らかに正しくありません。APIコントローラーをヒットしてエンジンモデルFK_EngineMakeIDに一致するEngineMakeを見つけたことがないため、新しいエンジンモデルをそれぞれのEngineMake.EngineModelsにプッシュできるため、モーダルが閉じてユーザーがエンジンメーカーを選択すると、新しく作成されたエンジンモデルがそのコレクションの一部になります。
誰かが私がどこで間違っているのかわかりますか?
PS:誰かが私に方法を教えてくれたら、私は単純な$ http.Getに満足し、APIリソースを放棄します