【问题标题】:ngMockE2E - $http keeps returning <undefined>ngMockE2E - $http 不断返回 <undefined>
【发布时间】:2017-04-10 11:28:16
【问题描述】:

我一直在尝试在 ES6 中用 Angular 1.6 编写应用程序,我想使用来自 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 的用户,即使在尝试了不同的方法之后也是如此。

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

【问题讨论】:

    标签: javascript angularjs ecmascript-6 httpbackend ngmocke2e


    【解决方案1】:

    您在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;
       });
     }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2019-07-18
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-30
      • 2022-01-22
      相关资源
      最近更新 更多