首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ngMockE2E - $http不断返回<undefined>

ngMockE2E - $http不断返回<undefined>
EN

Stack Overflow用户
提问于 2017-04-10 19:28:16
回答 1查看 78关注 0票数 0

我一直在尝试用Angular 1.6在ES6中编写应用程序,我想使用来自ngMockE2E的伪HTTP后端:https://docs.angularjs.org/api/ngMockE2E/service/$httpBackend

所以我在home.run.js中实现了像这样的API调用:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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方法:

代码语言:javascript
复制
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,即使尝试了不同的方法也是如此。

有没有人能找出我哪里搞砸了?

EN

回答 1

Stack Overflow用户

发布于 2017-04-10 20:20:54

您在getUsers()中缺少一个return

代码语言:javascript
复制
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;
   });
 }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43321992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档