当TabView用作Frame项目的主导航时,我需要本地化TabViewItem 标题(使用Nativescript Sidekick-> General-> TypeScript-> Tab Navigation生成的应用)。
对于本地化,我使用nativescript-localize插件,并在app.ts
中进行下一次初始化以用于模板:
import * as app from "tns-core-modules/application";
import { localize } from "nativescript-localize";
app.getResources().L = localize;
app.run({ moduleName: "app-root" });
app-root.xml
还有下一个内容:
<TabView androidTabsPosition="bottom">
<TabViewItem title="{{ L('catalog') }}">
<Frame defaultPage="pages/catalog/catalog-page"></Frame>
</TabViewItem>
<TabViewItem title="{{ L('notifications') }}">
<Frame defaultPage="pages/notifications/notifications-page"></Frame>
</TabViewItem>
</TabView>
如果我在带有初始化的{{ L('catalog') }}
的最终页面中使用下一个构造bindingContext
,那么一切都会按预期进行。但是在顶级TabView中,此构造不起作用。我认为这是因为尚未初始化bindingContext
,但如何为顶级TabView初始化它。
为了进行测试和原型制作,我创建了Playground-top level TabView。相反,在这个Playground中,我使用的是nativescript-localize插件,该函数返回文本,并且您可以看到它在home-page.xml
中成功执行,但未在app-root.xml
中执行。
答案 0 :(得分:1)
我怀疑这是一个小问题,似乎在设置bindingContext
之前表达式不会被处理。
仅用XML声明bindingContext
属性似乎可以解决问题
<TabView androidTabsPosition="bottom" bindingContext="">