Mig*_*God 5 html default ngx-translate angular
我希望翻译值中的预期参数有一个默认值,以防程序员不提供默认值。
例如,对于 中的此键en.json:
"NoRecordsWereFound": "No matching {{records}} were found for your search.",
Run Code Online (Sandbox Code Playgroud)
在 HTML 中,提供records参数时,如下所示:
<span>
{{('NoRecordsWereFound' | translate:{ records: 'books' })}}
</span>
Run Code Online (Sandbox Code Playgroud)
我将进入浏览器:
没有找到与您的搜索匹配的书籍。
但如果不提供参数,如下所示:
<span>
{{'NoRecordsWereFound' | translate}}
</span>
Run Code Online (Sandbox Code Playgroud)
而不是得到这个: 没有为您的搜索找到匹配的{{records}} 。
我会得到它的一些默认值,例如:
未找到与您的搜索匹配的defaultValue 。
是否可以?谢谢!
ngx-translate 不提供这样的功能,但是 Angular 中有很多选项可以实现这一点。以下是一些建议:
您可以使用 *ngIf 来引用不同的翻译:
<span *ngIf="books">
{{('NoRecordsWereFound' | translate:{ records: books })}}
</span>
<span *ngIf="!books">
{{('NoRecordsWereFound Default' | translate )}}
</span>
Run Code Online (Sandbox Code Playgroud)
您始终可以在组件的 init 上设置默认值,或者如果您执行了某些方法调用,则可以为错误响应设置默认值。
@Component({
selector: 'my-app',
template: `
<span>
{{('NoRecordsWereFound' | translate:{ records: books })}}
</span>
`,
})
export class AppComponent {
books = 'default value';
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用商店为不同场景设置默认状态。