首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Horizon IO导入角2项目的正确方法

将Horizon IO导入角2项目的正确方法
EN

Stack Overflow用户
提问于 2017-03-08 10:48:02
回答 2查看 380关注 0票数 0

我目前将HorizonIO导入到我的Range2项目中的方式如下:

代码语言:javascript
复制
var horizon = require('@horizon/client');

@Injectable()
export class DbService {
    private horizon;

    constructor() {
        this.horizon = Horizon({host: 'localhost:8181'});
    }
}

现在我不觉得这是正确的方式,因为我应该能够

代码语言:javascript
复制
import { Horizon } from '@horizon/client';

虽然它不会抛出错误,但是变量是不可用的。

思想/评论?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-20 13:49:19

的ES6导入等效值

代码语言:javascript
复制
var Horizon = require('@horizon/client');

代码语言:javascript
复制
import * as Horizon from '@horizon/client';

你所做的相当于

代码语言:javascript
复制
var Horizon = require('@horizon/client').Horizon;

编辑:

我现在使用以下代码使视界可以注入:

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import * as Hz from '@horizon/client';

@Injectable()
export class Horizon extends Function {
  private _hz;

  constructor() {
    super('...args', 'return this._hz(...args)');
    this._hz = new Hz({host: 'localhost:8181'});

    return this.bind(this);
  }
}

然后注入并调用它,就像直接导入它时一样:

代码语言:javascript
复制
constructor(hz: Horizon){
  hz('messages').watch().subscribe(...);
}

不太确定这是否比直接导入Horizon有任何好处,但使用DI会让人感到更不明智。

票数 2
EN

Stack Overflow用户

发布于 2017-03-08 11:03:47

检查@horizon/client是否在您的node_modules文件夹中,如果没有:尝试npm install (https://www.npmjs.com/package/@horizon/client)。

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

https://stackoverflow.com/questions/42669221

复制
相关文章

相似问题

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