2017-02-22 73 views
1

我有1个服务可以扩展其他服务。当我尝试在控制器中导入它时得到了这个错误ng:areq fn不是获得UserRepository的函数。我认为我的问题是正确的注入这项服务。这里是我的服务:ng:areq fn不是函数objectService angularjs es6

import { USER_REPO_CONFIG } from '../repository.config'; 
import { AbstractRepository } from '../abstract.repository'; 
import { UserModel } from './user.model'; 

import 'rxjs/add/operator/map'; 

class UserRepository extends AbstractRepository { 
    constructor($http) { 
     'NgInject' 
     super($http, USER_REPO_CONFIG, UserModel); 
    } 

    /** 
    * Gets the user by ID 
    * 
    * @param {number} userId - ID of a user to find 
    * @returns {Observable<UserModel>} - User model instance 
    */ 
    getUser(userId) { 
     return this.getItem(userId); 
    } 

    /** 
    * Creates the user 
    * 
    * @param {UserModel} user - User model instance 
    * @returns {Observable<UserModel>} - User model instance observable 
    */ 
    createUser(user) { 
     return this.createItem(user); 
    } 

    /** 
    * Updates the user 
    * 
    * @param {number} userId - ID of a user to update 
    * @param {UserModel} user - User model instance 
    * @returns {Observable<UserModel>} - User model instance observable 
    */ 
    updateUser(userId, user) { 
     return this.updateItem(userId, user); 
    } 
} 

export { UserRepository }; 

这里是我的模块:

import { HelloComponent } from './hello/hello.component'; 
import { UserRepository } from '../core/repository/user/user.repository'; 

const greetingModule = angular 
        .module('app.greeting',[]) 
        .component('helloComponent', new HelloComponent) 
        .service('UserRepository', new UserRepository) 
        .name; 

export { greetingModule }; 

和我的控制器:

import { UserRepository } from '../../core/repository/user/user.repository'; 

class HelloController { 
    constructor(UserRepository) { 
     this.hello = 'Hello World'; 
     this.service = UserRepository; 
    } 

    getAll() { 
     console.log('user Repository', this.service) 
    } 
} 
HelloController.$inject = ['UserRepository']; 
export { HelloController }; 

回答

0
.service('UserRepository', new UserRepository) 

​​需要一个功能,你传递一个对象。您可以直接通过该类:

.service('UserRepository', UserRepository) 

传递类有效地传递构造函数。

相关问题