小编Mig*_*lmo的帖子

Angular混合应用程序中降级组件中未识别的驼峰参数

我有一个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)

angularjs angular angular-hybrid

9
推荐指数
1
解决办法
205
查看次数

标签 统计

angular ×1

angular-hybrid ×1

angularjs ×1