2016-01-22 76 views
1

我正在嘗試獲得角度2應用程序的工作,並且遇到升級適配器的一些問題。Angular 2安裝問題

這裏是我的代碼:

boot.ts

/// <reference path="..\..\typings\main.d.ts" /> 

import {bootstrap} from 'angular2/platform/browser' 
import {UpgradeAdapter} from 'angular2/upgrade'; 
export const upgradeAdapter = new UpgradeAdapter(); 
import {AppComponent} from './app.component'; 
bootstrap(AppComponent); 


angular.module('app', []).directive('myApp', upgradeAdapter.downgradeNg2Component(AppComponent)); 

此代碼拋出以下異常,當我試圖用我的打字稿一飲而盡行動進行編譯。

gulp:src \ app \ boot.ts(11,46):錯誤TS2345:類型'Function'的參數不可分配給類型爲'any []'的參數。 在線:1 char:1 + gulp編譯-ts + ~~~~~~~~~~~~~~~~類型信息:(src \ app \ boot.ts ... f類型'any []'.: String)[],RemoteException + FullyQualifiedErrorId:NativeCommandError

類型'Function'中缺少屬性'push'。

現在,如果我在boot.ts中手動創建了這樣的指令,則不會發生錯誤。

angular.module('app', []).directive('tabsPane', TabsPane); 


function TabsPane(itemTabs) { 

    return { 
     restrict: 'E' 
    }; 


} 

所以obviouslly東西在upgradeAdapter.downgradeNg2Component(AppComponent)發生的事情,但我想不出什麼。

似乎只有在返回「any」的downgradeNg2Component和指向期望IDirectiveFactory的指令()之間存在類型問題,但這是來自角度2樣本的確切格式,所以我不知道還有什麼可以嘗試的。

任何想法?謝謝。

回答

12

用下面的代碼修復它。

angular.module('app', []).directive('myApp', <angular.IDirectiveFactory>adapter.downgradeNg2Component(AppComponent)); 
0

Angular Docs之後,您的問題的正確答案就是這一個。 適用於RC6,2.0.1和2.0.2。

angular.module('app') 
    .directive(
    'myApp', 
    upgradeAdapter.downgradeNg2Component(AppComponent) as angular.IDirectiveFactory 
); 
+1

除了如何將upgradeAdapter轉換爲IDirectiveFactory,這個答案和大約10個月前由OP提供的答案有什麼區別嗎? – silencedmessage