我有一个angularjs 1.6,刚刚配置为带有角度8的混合引导程序。
我在角度8中创建了2个新组件DriverDetail和DriverDetailLine:
@Component({
selector: 'driver-detail',
template: require('./driver-detail.component.html')
})
export class DriverDetail {
@Input('driver') driver: Driver;
constructor() {}
}
Run Code Online (Sandbox Code Playgroud)
@Component({
selector: 'driver-detail-line',
template: require('./driver-detail-line.component.html')
})
export class DriverDetailLine {
@Input('titleKey') titleKey;
@Input('icon') icon;
constructor() {}
}
Run Code Online (Sandbox Code Playgroud)
将DriverDetail降级为可从angularjs使用,如下所示:
app.directive(
'driverDetail',
downgradeComponent({ component: DriverDetail, inputs: ['driver'] }) as angular.IDirectiveFactory,
);
Run Code Online (Sandbox Code Playgroud)
当在DriverDetail内部使用DriverDetailLine并传递titleKey输入参数时:
<driver-detail-line [titleKey]="'IN_TRANSIT'" [icon]="'directions_car'">
</driver-detail-line>
Run Code Online (Sandbox Code Playgroud)
产生此错误:
未捕获的错误:模板解析错误:由于它不是'driver-detail-line'的已知属性,因此无法绑定到'title-key'。1.如果“ driver-detail-line”是Angular组件,并且具有“ title-key”输入,则请验证它是否是此模块的一部分。2.如果“ driver-detail-line”是Web组件,则将“ CUSTOM_ELEMENTS_SCHEMA”添加到该组件的“ @ NgModule.schemas”以禁止显示此消息。3.要允许任何属性,请在此组件的“ @ NgModule.schemas”中添加“ NO_ERRORS_SCHEMA”。(“ test] [title-key] =”'DRIVER_DASHBOARD.IN_TRANSIT'“ [icon] =”'directions_car'“> {{'LABEL”):ng:///DriverDetailModule/DriverDetail.html@0:51,语法错误(compiler.js:2687)位于TemplateParser.parse(compiler.js:
请注意,如果不使用驼峰案例参数,或者将其名称更改为非驼峰案例名称,则组件可以正常工作。
还尝试了其他格式,例如:
[title-key]="'IN_TRANSIT'"
[titlekey]="'IN_TRANSIT'"
Run Code Online (Sandbox Code Playgroud)
但是也有类似的错误
尝试使用第三方组件时会发生相同的情况,在驼峰情况下使用参数会产生相同的错误。
非常感谢,Miguel
编辑以获取更多信息:
@NgModule({
imports: …Run Code Online (Sandbox Code Playgroud)