使用JavaScript更改WinJS data-win-bind

时间:2014-12-19 13:40:15

标签: javascript winjs

<div class="companyTemplate" data-win-control="WinJS.Binding.Template" style="display: none">
    <div class='templDiv'>
        <h4 class='templText' data-win-bind="textContent: name"></h4>
    </div>
</div>

在某些时候我需要更改模板的绑定。我怎样才能改变&#34; textContent:name&#34;绑定到&#34; textContent:地址&#34;使用javascript绑定?

2 个答案:

答案 0 :(得分:0)

试试这个:

 var theTags = document.getElementsByTagName('h4');    
 theTags[0].setAttribute('data-win-bind', 'textContent: address')

答案 1 :(得分:0)

如果按照Joel的建议修改HTML,则需要在包含元素及其数据源的位置调用WinJS.Binding.processAll来更新实际绑定。

也就是说,带有data-win-bind的声明性格式只是指示processAll如何使用WinJS.Binding.bind或数据源的bind方法(来自mixin)来设置实际关系。

前者WinJS.Binding.bind使用绑定描述符来设置任意源和目标之间的关系;实例绑定方法已经定义了源。

了解这一点,您可以使用其中一种绑定方法在运行时更改绑定。在这里描述它有点太多了,所以你最好的资源是查看Programming binding sample。我还在免费电子书的第313-315页讨论了这个主题, Programming Windows Store Apps with HTML, CSS, and JavaScript, 2nd Edition. (整章都是关于数据绑定的。)

您很可能希望跳过声明性HTML来设置初始绑定,并且只需从一开始就在代码中执行此操作。然后,您可以参数化该代码,以便在需要时将其提供给新的源属性。