我有一个使用Windows 8的应用程序,其中包含一个模板,其中包含一个div,我希望根据data-win-control="WinJS.Binding.Template"
内部属性的值来显示或隐藏该div。我尝试了以下方法但没有成功:
<div data-win-bind="visible: isMore"> ..content... </div>
isMore
是数据绑定项的布尔属性。
我该怎么做呢?我猜visible属性不存在?
你是正确的 - visible
属性不存在,但你可以使用CSS和绑定转换器来控制外观。
首先,使用WinJS.Binding.converter
创建一个转换器函数,将布尔值转换为CSS display属性的值,像这样:
var myConverter = WinJS.Binding.converter(function (val) {
return val ? "block" : "none";
});
确保函数在全局范围内可用 - 我使用WinJS.Namespace.define
来创建这些转换器的集合,以便我可以全局获取它们。
现在,您可以在数据绑定中使用这个转换器来控制CSS显示属性,就像这样:
<div data-win-bind="style.display: isMore myConverter"> ..content... </div>
span
元素。 - philk