2012-04-10 54 views
1

WinJS允许您在运行时动态绑定HTML属性,类似于XAML绑定。使用WinJS绑定多个HTML属性?

<div id="itemTemplate" data-win-control="WinJS.Binding.Template"...> 
    <h3 data-win-bind="innerText: timestamp"></h3> 
</div> 

如何,如果我想也结合了<h3>字体颜色款式为好,我怎么做到这一点?

回答

5

与使用{key:value,key2:value2}语法的data-win-options绑定不同。 data-win-binding使用类似于inline-css样式的语法。

使用property:bindingValue;property2:bindingValue2等将允许您将多个属性绑定到同一个HTML控件。

作为一个例子来回答上面的问题:

<div id="itemTemplate" data-win-control="WinJS.Binding.Template"...> 
    <h3 data-win-bind="style.color: fontcolor; innerText: timestamp"></h3> 
</div> 
+1

此外,您可以使用绑定初始化,形式为: “富:酒吧My.Custom.Function”。看看WinJS.Binding.converter的帮助器/包装。 – 2012-04-11 05:02:28

3

比方说,你要绿色和红色之间切换如果时间戳是“重要的”,并在模型中有一个字段“isImportant” :

HTML:

<div id="itemTemplate" data-win-control="WinJS.Binding.Template"> 
    <h3 data-win-bind="innerText: timestamp; style.color: isImportant MyConverters.colorConverter"></h3> </div> 

那么你可以使用一个转换器返回的首选颜色取决于boolea ñisImportant这样的:

JS:

WinJS.Namespace.define("MyConverters", { 
    //Converter function 
    colorConverter: WinJS.Binding.converter(function (important) { 
     return important ? "Green" : "Red"; 
    }) 
}); 
+0

我不知道如何绑定到'style ['background-image']'属性?因为在CSS中它将使用'url'函数,即。 'background-image:url('http://myurl.com/image.jpg')'但是我怎么在绑定中应用这个'url()'? – 2015-01-10 11:30:19