我正在尝试在我的应用程序中实现语义缩放控制。这是我的一个页面的片段:
<div id="semanticZoomDiv" data-win-control="WinJS.UI.SemanticZoom">
<div id="zoomedInListView"
class="win-selectionstylefilled"
data-win-control="WinJS.UI.ListView"
data-win-bind="winControl.itemDataSource: groupedList.dataSource; winControl.groupDataSource: groupedList.groups.dataSource;"
data-win-options="{
itemTemplate: select('#mediumListIconTextTemplate'),
groupHeaderTemplate: select('#headerTemplate'),
selectionMode: 'none',
tapBehavior: 'none',
swipeBehavior: 'none'
}">
</div>
<div id="zoomedOutListView"
data-win-control="WinJS.UI.ListView"
data-win-bind="winControl.itemDataSource: groupedList.groups.dataSource;"
data-win-options="{
itemTemplate: select('#semanticZoomTemplate'),
selectionMode: 'none',
tapBehavior: 'invoke',
swipeBehavior: 'none'
}">
</div>
</div>
问题是,semanticZoomDiv 是空的。
但是,如果我删除属性
data-win-control="WinJS.UI.SemanticZoom"
来自语义ZoomDiv 的两个 ListView 呈现并正确填充了数据。似乎 WinJS 在将数据绑定到嵌套控件时存在问题?(ListView 控件位于 SemanticZoom 控件内部 - 移除外部 SemanticZoom 控件数据后正确绑定)。
我设法通过 data-win-options 绑定到全局命名空间使语义缩放工作,但我想通过视图模型为我的页面提供数据,因此我尝试使用 data-win-bind。