Angular 2设置问题

时间:2016-01-22 19:42:14

标签: angularjs typescript 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));

当我尝试使用我的typescript gulp动作编译它时,此代码抛出以下异常。

gulp:src \ app \ boot.ts(11,46):错误TS2345:类型'Function'的参数不能分配给'any []'类型的参数。 在行:1个字符:1 + gulp compile-ts + ~~~~~~~~~~~~~~~     + CategoryInfo:NotSpecified:(src \ app \ boot.ts ... f type'any []':String)[],RemoteException     + FullyQualifiedErrorId:NativeCommandError

“功能”类型中缺少属性“推送”。

现在,如果我在boot.ts中手动创建指令,则不会发生错误。

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


function TabsPane(itemTabs) {

    return {
        restrict: 'E'
    };


}

很明显,升级Adapter.downgradeNg2Component(AppComponent)正在发生一些事情,但我无法弄清楚是什么。

似乎在downgradeNg2Component返回“any”和指向IDirectiveFactory的指令()之间存在类型问题,但这是角度2样本的确切格式,所以我不知道还有什么可以尝试。< / p>

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:12)

使用以下代码修复它。

{ 
  container:"form", width:300,
  rows:[    
    { view:"form", elements:[
      { view:"text", label:"Name" },
      { view:"text", label:"Email" },
      { view:"text", label:"Password" }
    ] },
    { view:"button", autowidth:true, value:"Submit" }
    ] 
}

答案 1 :(得分:0)

Angular Docs之后,您的问题的正确答案将是这一个。 适用于RC6,2.0.1和2.0.2。

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