我是AngularJS和Coding的新手,但我对此有一些指导,但我的http.get没有返回任何数据。我在.js文件中嵌入了以下工厂和控制器。并有相应的重复'在一个html文件中,我希望从JSON文件返回日期。当我查看Chrome开发者工具范围内的详细信息时,它会将范围显示为已退回,但具有以下内容
{ 成员:null }
工厂和控制器代码如下
app.factory('MemberFactory', ['$http' , function($http)
{
var api =
{
getMembers : function()
{
return $http.get('../json/members2.json')
},
getMembers : function(membernumber)
{ // NEW
return $http.get('../json/' + membernumber + '.json')
}
}
return api
}])
app.controller('homeController',
['$scope', '$location', '$routeParams', 'GetTheMember',
function($scope, $location, $routeParams, GetTheMember) {
GetTheMember.getmembers($routeParams.membernumber)
.success(function(data) {
$scope.member = data
})
.error(function(err) {
$location.path('./404')
})
$scope.setImage = function(img) {
$scope.img = img
}
}])
答案 0 :(得分:2)
您的工厂名为MemberFactory
。这就是你应该在控制器中注入而不是GetTheMember。另请注意,属性名称区分大小写。您必须致电getMembers
而不是getmembers
。但由于该函数采用成员ID,因此最好将其重命名为getMember
。这样它就不会覆盖其他getMembers
函数。
app.controller('homeController',
['$scope', '$location', '$routeParams', 'MemberFactory',
function($scope, $location, $routeParams, MemberFactory) {
MemberFactory.getMember($routeParams.membernumber)
.success(function(data) {
$scope.member = data;
})
.error(function(err) {
$location.path('./404');
})
$scope.setImage = function(img) {
$scope.img = img;
}
}])