我正在尝试使用角度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>
有什么想法吗?感谢。
答案 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
);