【问题标题】:inject breeze service in angularjs + typescript在 angularjs + typescript 中注入微风服务
【发布时间】:2014-12-19 10:34:48
【问题描述】:
class Metadata {

    constructor(private breeze) {

        this.breeze.? // Ctrl+Space Nothing 

        breeze.? // Ctrl+Space Everything

    }

}

angular.module('bs.breeze', ['breeze.angular']);

// do nothing but you could
// create the window.breeze object
angular.module('bs.breeze').run(['breeze', function (breeze) { }]);


//get breeze metadata by hand
angular.module("bs.breeze").factory('metadata', [ 'breeze', (breeze) => new Metadata(breeze)]);

this.breeze.?如您所见,“私人微风”没有任何声明类型。

微风。?显示所有内容,因为它确实引用了 breeze.d.ts 中声明的模块微风

breeze 和 this.breeze 是同一个对象

我的问题是,当我将微风服务注入元数据服务时,如何使用 AngularJs 标准注入,就像我在最后一行所做的那样,然后当我编写元数据类时,我如何使用“this.breeze”和具有 IntelliSense 等 TypeScript 优势。

最后,this.breeze 有可能被视为 IntelliSense 目的的轻量模块,还是存在其他方式来实现此场景?

【问题讨论】:

    标签: angularjs typescript breeze angularjs-service


    【解决方案1】:

    您可以使用typeof 来指代模块的类型。在这种情况下,由于您有名为 breeze 的参数,因此您需要重命名该参数或为全局符号 breeze 创建一个导入,以便实际引用它:

    import br = breeze;
    class MyClass1 {
        constructor(private breeze: typeof br) {
    
        }
    }
    
    /*** or ***/
    
    class MyClass2 {
        constructor(private br: typeof breeze) {
    
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-11-02
      • 2014-05-07
      • 2015-06-27
      • 2013-08-30
      • 2013-03-02
      • 1970-01-01
      • 2013-04-07
      • 2014-01-27
      • 2016-12-09
      相关资源
      最近更新 更多