我正在閱讀很多關於此問題的文章,如this,and this和also this,但這些文章中的每一篇都從NG1服務爲class
並且可以導出的情況開始。在angular2指令中注入angular1服務
我在一個非常不同的情況的時候,我經常在同一個文件中的多個服務,他們在一個非常古老的風格方式像
angular.module('App.services').factory('SessionService',
function() {
var defer = $q.defer();
[...]
}
);
沒有class
,沒有export
定義。
而且這東西在頁面直接鏈接與老式<script src="...">
同時我想要創造Angular2和這些指令的新指令需要那些老式的服務。
我得到我應該能夠寫出這樣的事情
import {Injector,Component, Directive, ElementRef, Input, View} from 'angular2/core';
var injector = Injector.resolveAndCreate([
SessionService
]);
var SessionService = injector.get(SessionService);
@Component({
selector: 'nav-bar'
})
@View({
templateUrl: '/app/components/navbar/navBar.html'
})
export class navBar {
constructor() {
}
}
但當然SessionService
對象沒有被發現。
我怎樣才能擺脫這個混亂?
[附加信息]
使用babel
作爲transpiler
angular2-annotations
插件加入
一個偉大的文章,瞭解angular2註解和裝飾之間的區別:http://blog.thoughtram.io/angular/2015/05/03/the-difference-between-annotations-and-decorators.html
而不是試圖導入腳本和手動注入,嘗試包括所有的腳本,你index.html中序列。 然後你可以通過它的名字直接導入你的控制器裏面的服務.... – damitj07