我一直在尝试用Angular 1.6在ES6中编写应用程序,我想使用来自ngMockE2E的伪HTTP后端:https://docs.angularjs.org/api/ngMockE2E/service/$httpBackend
所以我在home.run.js中实现了像这样的API调用:
mocks.$inject = ['$httpBackend'];
export default function mocks($httpBackend) {
let users = [{'name': 'Eva'},{'name': 'David'}]
$httpBackend.whenGET('/users').respond(users);
$httpBackend.whenPOST('/users').respond(function(method, url, data) {
let user = angular.fromJson(data);
users.push(user);
return [200, user, {}];
});
}我还有一个看起来像这样的index.js:
import angular from 'angular';
import uirouter from 'angular-ui-router';
import mocke2e from 'angular-mocks/ngMockE2E';
import mocks from './home.run'
import routes from './home.config';
import HomeController from './home.controller';
export default angular.module('app.home', [uirouter, mocke2e])
.config(routes)
.controller('HomeController', HomeController)
.run(mocks)
.name;和HomeController,其中我调用了get方法:
export default class HomeController {
constructor($http) {
this.$http = $http;
this.users = this.getUsers();
}
getUsers() {
this.$http.get('/users').then(function(response) {
return response.data;
});
}
}
HomeController.$inject = ['$http']不幸的是,控制器中的getUsers()方法总是返回undefined,而不是response.data中的users,即使尝试了不同的方法也是如此。
有没有人能找出我哪里搞砸了?
发布于 2017-04-10 20:20:54
您在getUsers()中缺少一个return
export default class HomeController {
constructor($http) {
this.$http = $http;
this.users = this.getUsers();
}
getUsers() {
return this.$http.get('/users').then(function(response) {
return response.data;
});
}
}https://stackoverflow.com/questions/43321992
复制相似问题