Factory function gives "Error: is undefined
Factory function gives "Error: is undefined
我无法向 api 拨打 http.get 电话。这是设置:
user.js
.config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/hem');
$stateProvider.state('anvandare', {
url: '/anvandare',
views: {
'main': {
controller: 'UserController',
templateUrl: 'modules/user/user.tpl.html'
}
}
});
}])
.controller('UserController',
['$scope', '$http', 'userFactory', function($scope, $http, userFactory) {
this.users = [{name: "Patrik"}];
$scope.message = userFactory.test();
userFactory.getUsers().then(function(users) {
$scope.users = users;
});
}])
.factory('userFactory', ['$http', function($http) {
return {
test: function() {
return "hello world";
},
getUsers: function() {
$http.get('/api/user');
}
};
}]);
modules/user/user.tpl.html
<div class="container" ng-controller="UserController as UserCtrl">
<h1>Users</h1>
<p>{{message}}</p>
<ul>
<li ng-repeat="user in users">{{user.name}}</li>
</ul>
</div>
所以现在,我禁用了缓存并且我在请求中看不到 304:s 所以我知道所有的响应都是新鲜的,我可以看到 <h1>Users</h1> <p>{{message}}</p>
并且消息是 = "hello world" 应该是这样,但是用户列表没有显示出来。正如我所见,页面上的 chrome 工具显示
"Error: userFactory.getUsers(...) is undefined"
当在我的浏览器中输入 'localhost:5000/api/user' 时,我确实让所有用户返回 json
[{"_id":"54e4c44f8d18e2a43f58935f","name":"Patrik","__v":0,"updated_at":"2015-02-18T16:56:47.105Z"},{"_id":"54e4c4588d18e2a43f589360","name":"Patrik Nygren","__v":0,"updated_at":"2015-02-18T16:56:56.603Z"},{"_id":"54e4c45f8d18e2a43f589361","name":"Patrik Ackerfors","__v":0,"updated_at":"2015-02-18T16:57:03.011Z"},{"_id":"54e4c4888d18e2a43f589362","__v":0,"updated_at":"2015-02-18T16:57:44.226Z"}]
我做错了什么?
你必须 return 来自你 getUsers
方法的东西:
getUsers: function() {
return $http.get('/api/user');
}
我无法向 api 拨打 http.get 电话。这是设置:
user.js
.config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/hem');
$stateProvider.state('anvandare', {
url: '/anvandare',
views: {
'main': {
controller: 'UserController',
templateUrl: 'modules/user/user.tpl.html'
}
}
});
}])
.controller('UserController',
['$scope', '$http', 'userFactory', function($scope, $http, userFactory) {
this.users = [{name: "Patrik"}];
$scope.message = userFactory.test();
userFactory.getUsers().then(function(users) {
$scope.users = users;
});
}])
.factory('userFactory', ['$http', function($http) {
return {
test: function() {
return "hello world";
},
getUsers: function() {
$http.get('/api/user');
}
};
}]);
modules/user/user.tpl.html
<div class="container" ng-controller="UserController as UserCtrl">
<h1>Users</h1>
<p>{{message}}</p>
<ul>
<li ng-repeat="user in users">{{user.name}}</li>
</ul>
</div>
所以现在,我禁用了缓存并且我在请求中看不到 304:s 所以我知道所有的响应都是新鲜的,我可以看到 <h1>Users</h1> <p>{{message}}</p>
并且消息是 = "hello world" 应该是这样,但是用户列表没有显示出来。正如我所见,页面上的 chrome 工具显示
"Error: userFactory.getUsers(...) is undefined"
当在我的浏览器中输入 'localhost:5000/api/user' 时,我确实让所有用户返回 json
[{"_id":"54e4c44f8d18e2a43f58935f","name":"Patrik","__v":0,"updated_at":"2015-02-18T16:56:47.105Z"},{"_id":"54e4c4588d18e2a43f589360","name":"Patrik Nygren","__v":0,"updated_at":"2015-02-18T16:56:56.603Z"},{"_id":"54e4c45f8d18e2a43f589361","name":"Patrik Ackerfors","__v":0,"updated_at":"2015-02-18T16:57:03.011Z"},{"_id":"54e4c4888d18e2a43f589362","__v":0,"updated_at":"2015-02-18T16:57:44.226Z"}]
我做错了什么?
你必须 return 来自你 getUsers
方法的东西:
getUsers: function() {
return $http.get('/api/user');
}