Windows 8 Metro javascript 应用程序绑定到表

2024-04-10

我在 javascript Metro 应用程序中绑定表格时遇到问题,而不是与模板中提供的 html 绑定,它会放入大量 div 并将 json 呈现为字符串。这就是我所拥有的:

<tr id="tableRow" data-win-control="WinJS.Binding.Template">
    <td data-win-bind="innerText: label"></td>
    <td data-win-bind="innerText: value"></td>
    <td></td>
</tr>

<table>
    <thead>
        <tr>
           <th>col1</th>
           <th>col2</th>
           <th>col3</th>
        </tr>
    </thead>     
    <tbody class="topContent" data-win-control="WinJS.UI.ListView" data-win-options="{ selectionMode: 'none' }"></tbody>
</table>

我用来绑定的 javascript (topContent 是 { label, value} 对象的列表:

function bindContent() {
    var list = new WinJS.Binding.List();

    topContent.forEach(function (item) {
        list.push(item);
    });

    var listView = document.querySelector(".topContent").winControl;
    var template = document.getElementById("tableRow");
    listView.layout = new ui.ListLayout();
    listView.itemTemplate = template;
    listView.itemDataSource = list.dataSource;
}

你不能使用ListView像这样。这ListView控件添加了一整堆额外的元素来完成其工作,这会导致您的表出现问题。

答案是与WinJS.Binding.Template直接控制并使用它向表格元素中插入行。以下是模板所需的 HTML:

<table >
    <tbody id="myTemplate" data-win-control="WinJS.Binding.Template">
        <tr >
            <td data-win-bind="innerText: label"></td>
            <td data-win-bind="innerText: value"></td>
            <td></td>
        </tr>
    </tbody>
</table>

您需要放置一个完整的表格并tbody以便浏览器不会因查找未附加的 tr 元素或插入 tbody 元素本身而感到不安。模板的外部元素被丢弃,因此只有tr当您使用它时,将从模板生成元素。

这是表的标记,生成的元素将被插入到其中 - 这就是您所拥有的,除了我添加了一个 id 属性,这样我就可以找到要从 Javascript 插入内容的元素:

<table>
    <thead>
        <tr>
           <th>col1</th>
           <th>col2</th>
           <th>col2</th>
        </tr>
    </thead>     
    <tbody id="myTableBody">
    </tbody>
</table>

最后,这是代码:

WinJS.UI.processAll().then(function () {
    var tableBody = document.getElementById("myTableBody");
    var template = document.getElementById("myTemplate").winControl;

    topContent.forEach(function (item) {
        template.render(item, tableBody);
    });
});

您需要确保Promise由返回WinJS.UI.processAll在使用模板之前已完成。致电render您想要处理的每个项目的方法 - 参数是要传递到模板进行数据绑定的数据项以及要插入生成的元素的 DOM 元素。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 8 Metro javascript 应用程序绑定到表 的相关文章

随机推荐

  • FB.getLoginStatus 弹出窗口内的 FB.login 被阻止

    我正在尝试使用 Facebook Javascript SDK 将 Facebook 登录集成到我的网站中 根据Facebook开发者文档提供的分步说明here https developers facebook com docs java
  • 模板函数中的默认模板需要空尖括号 <>

    gcc 11 2 似乎不能 https godbolt org z eY7x3MojP编译这个 template
  • 如何检查 params[:some][:field] 是否为零?

    我尝试了代码 这让很多人受益匪浅 如何测试rails中是否存在参数 https stackoverflow com questions 5629402 how to test if parameters exist in rails 但它不
  • STL容器内存问题[重复]

    这个问题在这里已经有答案了 我正在 Linux Fedora 10 和 CentOS 5 中使用 gcc 4 3 2 并使用 STL 容器实现我自己的图形库 然后我发现了一些内存问题 当我构建图表时 我使用了大量内存来查看top或其他内存使
  • Ngxs - 调用 Angular 服务:好的做法吗?

    当我使用ngxs我的应用程序应该做什么 我的组件调用一个服务 并且该服务调度一个操作 结果作为有效负载 我的组件调度一个动作 我的 状态调用服务 我的观点是 Dispatched Action 本身应该是不可变的 并且不用于返回结果 相反
  • 如何从我的应用程序启动默认音乐播放器?

    我制作了一个应用程序ListView 当我点击ListView项目 一个 ogg声音文件应该开始播放 不在我的应用程序中 而是在用户的默认音乐播放器应用程序中 我怎样才能做到这一点 Try this Intent it new Intent
  • Java - 作为普通代码运行字符串[重复]

    这个问题在这里已经有答案了 有没有办法将字符串作为代码运行 我的意思是如果我运行的字符串有价值System out println Hello World 我可以像普通代码一样运行该字符串 然后输出将是 Hello World 吗 例如 S
  • 如何将单个图像转换为 MP4 视频?

    如何将单个图像转换为 mp4 视频 例如 我需要播放同一张图像20秒 持续时间将是动态的 我知道这是可能的ffmpeg 我在谷歌和SO中搜索 但不幸的是 我无法找到正确的教程 我只是想要一个正确的方向 欢迎任何意见或建议 基本语法是 ffm
  • 无法登录在 django 管理后端创建的超级用户

    我试图在 django 管理后端创建超级用户 但不知何故我无法让他们登录 这是我的用户类别 class User AbstractBaseUser PermissionsMixin email models EmailField uniqu
  • 如何在点击时将图像设置为背景图像?

    我有一个活动显示带有不同图像的网格视图 当单击其中一个图像时 我希望单击的图像成为另一个活动的背景图像 我怎样才能做到这一点 这是我的活动 显示网格视图 public class HelloGridViewActivity extends
  • 在 Python Pandas 中将列转换为行

    我有以下 Python pandas 数据框 fruits numFruits 0 apples 10 1 grapes 20 2 figs 15 I want apples grapes figs Market 1 Order 10 20
  • 如何在omnet++ Veins中实现RSU到RSU通信?

    我正在尝试在 Veins 中实现 RSU 到 RSU 的通信 为此 我在 RSU 模块 RSU ned 文件 中添加了一个输入输出门 module RSU parameters string applType type of the app
  • 将班次数据(开始和结束时间)分解为每小时数据

    我有一个 df 如下 显示一个人何时开始轮班 结束轮班 工作时数和日期 Business Date Number PayTimeStart PayTimeEnd Hours 0 2019 05 24 1 2019 05 24 11 00 0
  • 在 python 脚本中使用 easy_install ?

    easy install python 扩展允许从控制台安装 python Egg 例如 easy install py2app 但是是否可以在 python 脚本中访问 easy install 功能 我的意思是 不调用 os syste
  • Vim 命令日志

    是否可以记录我在 VIM 中输入的所有命令以供以后分析 我的意思是每个简单的命令 例如动作或更改文本 即jjjjjjkkkcw
  • mySLComposerSheet 上的格式字符串未使用错误数据参数

    我有点困惑为什么我收到错误 格式字符串未使用数据参数 有其他人在 iOS6 的 Xcode 4 5 中得到这个或修复这个问题吗 IBAction facebookPost id sender if SLComposeViewControll
  • jQuery 验证将类添加到错误元素?

    我有以下使用 jQuery Validate 的代码 register validate debug true errorClass error validClass success errorElement span highlight
  • jquery 如果 div id 有孩子

    This if 条件给我带来了麻烦 if div id myfav has children do something else do something else 我尝试了以下所有方法 if myfav hasChildren do so
  • nasm idiv 为负值

    尝试将正数除以负数 目前我的程序将正确划分 并且我可以正确访问其余部分 但是当我输入一个正数除以一个负值时 它根本不会被除 我知道有一种方法可以 签名扩展 并且它会正确划分 我只是看不懂说明书 movsss imm reg reg mem
  • Windows 8 Metro javascript 应用程序绑定到表

    我在 javascript Metro 应用程序中绑定表格时遇到问题 而不是与模板中提供的 html 绑定 它会放入大量 div 并将 json 呈现为字符串 这就是我所拥有的 tr td td td td td td tr table t