我的 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 资源