【发布时间】:2015-06-08 14:05:30
【问题描述】:
我想同时使用 angularjs 和 typescript。
我正在尝试使用打字稿创建Orm factory 并遇到一些问题。
我将我的工厂类定义为:
class OrmModel implements IOrmModel {
static $inject = ['$http', '$q', 'config'];
private name:string;
private isNewRecord:boolean = false;
constructor(public $http:ng.IHttpService, private $q:ng.IQService, private config:Object) {
//...
}
static findAll(params:ISearchParams, relations:string[]):ng.IPromise<OrmModel> {
//...
}
}
我在这里定义了工厂。
OrmModule:ng.IModel = angular.module('core.orm', []);
OrmModule.factory('OrmModel', ['$http', '$q', OrmModel]);
如何在findAll() 方法中使用$http 或$q?
【问题讨论】:
-
注意:对于一个类,你应该使用
myModule.service('OrmModel', OrmModel)。 -
使用静态函数的依赖是个坏主意。但是,您可以声明一个静态变量
private static $http;,然后在构造函数中执行:OrmModel.$http = $http; -
我想,我应该像
myModule.service('OrmModel', new OrmModel())这样使用service,因为 Angular 中的服务大部分都是单例
标签: angularjs typescript static-methods inject