nativescript - 如何将 bindingContext 传递给顶级 TabView
问题描述
当 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 -顶级 TabView。在这个 Playground 而不是nativescript-localize插件中,我使用了返回文本的函数,你可以看到它在 中成功执行home-page.xml
,但没有在app-root.xml
.
解决方案
我怀疑这是一个边缘情况错误,似乎直到bindingContext
设置了表达式才处理。
只是bindingContext
在 XML 中声明属性似乎可以解决问题
<TabView androidTabsPosition="bottom" bindingContext="">
推荐阅读
- android - Android后台任务和电池消耗
- python - python请求和无javascript浏览器请求之间的区别?
- google-app-engine - 使用 Google App Engine 设置暂存环境
- python - 椭圆曲线点乘法有时会产生错误的结果
- java - Android studio:CutomListView 给出了奇怪的输出,它应该给出 firebase 数据。有什么解决办法吗?
- c# - HasMentionPrefix 在使用 Linux 启动机器人时不起作用,但在 Windows 上启动时起作用
- javascript - 如果有 2 个元素具有相同的文本,我想要在 jquery 中删除一个
- javascript - 如何为每个 _blank 链接自动添加图标?
- sql - 如何在特定 ID 的子查询中求和?
- jquery - 多滑块 jquery 表单没有响应