【问题标题】:Bind list to multiple target divs in WinJS将列表绑定到 WinJS 中的多个目标 div
【发布时间】:2015-11-16 19:35:19
【问题描述】:

我在 js 文件中声明了这样的列表(完整列表包含 6 项,但可以多或少)

  var dataArray = [
    {
        type: "item", title: "Cliff",
        picture: "../../images/slike_etnologija/srednji_vek/01.jpg",
        text: "some description"
    },
    {
        type: "item", title: "Grapes",
        picture: "../../images/slike_etnologija/srednji_vek/02.jpg",
        text: "another description"
    },

在 html 文件中声明的两个模板

  <div id="galleryTemplate" data-win-control="WinJS.Binding.Template">
            <div class="overlaidItemTemplate">
                <img class="image img-responsive" src="#" data-win-bind="src: picture; alt: title" />
                <div class="overlay">
                    <h2 class="ItemTitle" data-win-bind="innerText: title"></h2>
                </div>
            </div>
        </div>

        <div id="textTemplate" data-win-control="WinJS.Binding.Template">
            <div>
                <p data-win-bind="innerText: text"></p>
            </div>
        </div>

还有两个控件,我需要显示列表中的数据

  <div class="col-md-12" id="basicFlipView"
                     data-win-control="WinJS.UI.FlipView"
                     data-win-options="{ itemDataSource : EtnologijaGallery.itemList.dataSource, itemTemplate: galleryTemplate }">
                </div>

   <p data-win-control="WinJS.UI.ListView"
                     data-win-options="{ itemDataSource : EtnologijaGallery.itemList.dataSource, itemTemplate: textTemplate }">
                </p>

我正在尝试在翻转框中显示图像库,并在其旁边的列表视图中显示与每个图像关联的文本描述。由于设计原因,我不能将这两个东西放在同一个模板中。

我的 Flipbox 工作正常,并显示所有图像,但列表视图不起作用。首先,它仅显示列表中的 3 个描述,并且这 3 个描述显示在带有滚动条的控件中,而不是在用户更改翻转框中的图像时更改。

谁能帮我解决这个问题?

【问题讨论】:

  • 我不完全明白你希望得到什么效果 - 当用户使用 FlipView 控件移动到下一个图像时,ListView 控件会发生什么?
  • 当用户在翻转视图中更改图片时,与该图片关联的文本应显示在列表视图中。

标签: javascript data-binding winjs win-universal-app javascript-databinding


【解决方案1】:

正如http://www.buildwinjs.com/tutorial/2WinJS_Binding/bindingInit/ 中提到的,WinJS 绑定是一次性绑定,您将同一个数组绑定到两个单独的控件。

我认为您应该检查 FlipView 的 onpageselected 事件,当该事件发生时,使用正确的文本更新 div。我想在这种情况下根本不需要使用 ListView。

【讨论】:

  • 我已经为我的 winjs 实现了 onpageselect 事件,但它仅在我在页面上导航时执行。当我在翻转视图中更改图像时不执行。
  • 根据文档“ondatasourcecountchanged 在 itemDataSource 属性中的项目数发生变化时引发”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 2016-02-18
相关资源
最近更新 更多