【发布时间】:2014-07-02 10:10:33
【问题描述】:
所以我得到了这个 AngularJS 控制器,我需要在其中使用 2 个不同的服务 Project 和 Subproject。一个通过project_id 字段链接到另一个。代码如下:
bonsControllers.controller('SubprojetDetailCtrl', ['$scope', '$routeParams', 'Project', 'Subproject',
function($scope, $routeParams, Project, Subproject) {
$scope.subproject = Subproject.queryFalse({projectId: $routeParams.id});
$scope.project = Project.queryFalse({projectId: $scope.subproject.project_id});
}]);
问题是当我在$scope.project 中使用甚至在console.log 上使用它时,$scope.subproject.project_id 的值是未定义的。
services.js 代码是:
var bonsServices = angular.module('bonsServices', ['ngResource']);
bonsServices.factory('Project', ['$resource',
function($resource) {
return $resource(URL_API + '/projects/:projectId', {}, {
queryTrue: {method: 'GET', params: {projectId: ''}, isArray: true},
queryFalse: {method: 'GET', params: {projectId: ''}, isArray: false},
save: {method: 'POST', headers: {'Content-Type': 'application/json'}, isArray: false},
'delete': {method: 'DELETE', params: {projectId: ''}, isArray: false},
update: {method: 'PUT', params: {projectId: ''}, headers: {'Content-Type': 'application/json'}, isArray: false}
});
}]);
bonsServices.factory('Subproject', ['$resource',
function($resource) {
return $resource(URL_API + '/subprojects/:projectId', {}, {
queryFalse: {method: 'GET', params: {projectId: ''}, isArray: false}
});
}]);
模板代码是:
<div >
<span>Client :</span> {{project.client.name}} <br />
<span>Projet :</span> {{project.name}} <br />
<span>Sous Projet :</span> {{'Saison ' + subproject.saison}} <br />
<span>Type :</span> {{project.type}} {{subproject.project_id}}<br />
<span>Nature :</span> {{subproject.nature}} <br />
</div>
在 Firebug 中,我可以清楚地看到 $scope.subproject 的所有元素,包括 project_id
如果你们能就这个问题给我一个提示,我将非常感激。
谢谢
【问题讨论】:
-
你能提供一个 plunkr 或 jsfiddle 吗?
-
如果您愿意,我可以提供服务代码和模板代码
-
是的,请提供服务代码
-
健全性检查:在问题中,您将其拼写为 projet 和 project;您是否在其余代码上犯了同样的错误?
-
No Dan ...我尝试在将代码发布到此处之前对其进行清理,但似乎我还没有做得很好该应用程序运行良好,除了那行代码
标签: javascript angularjs object factory