innerHTML 和翻译的正确值 Angular

Proper values for innerHTML and translate Angular

在翻译中json我有这样的东西

"Take": "The '<b>{{Name}}</b>' is assigned to user <b>{{user}}</b> until <b>{{Date}}</b>"

但是当我在 html

中尝试这样的事情时
<p [innerHTML]="'Take' | translate: '{ Name: options.Name, user: options.user, Date: options.date }'">
</p>

和对象

options = {
Name: John,
user: Rambo,
Date: 22/02/1997
}

我遇到了这个错误 错误语法错误:TranslatePipe 中的参数错误。需要一个有效的对象,收到: 我不知道我哪里做错了?

translate: '{ Name: options.Name, user: options.user, Date: options.date }'

意味着你发送一个字符串。

试试

translate: { Name: options.Name, user: options.user, Date: options.date }
<p [innerHTML]="'Take' | translate: { Name: options.Name, user: options.user, Date: options.date }">

是正确的语法。

我有时也对它感到困惑。下面是一个更复杂的用例。在这里分享,以备后用。

[attr.aria-label]="(_variable1$ | async) ? ('translateVariable' | translate: { translateProperty: _variable2 }) : ''"