javascript - WinJS、data-win-bind 用于脚本控制绑定(bind)?

标签 javascript html windows-8 winjs

我正在使用 HTML5/Javascript 开发 Windows 8 应用程序。我创建了一个自定义控件,它使用一堆 DIV 来显示内容,并且每个 DIV 都使用 WinJS.Binding.Template 呈现。该设置接近这个问题的答案:WinJS.UI.ListView customize list item content? .

绑定(bind)数据接近:

[
    {
        "title": "title name",
        "allow_action": false
        "action_type": "go"
    },
    ...
]

我的模板接近:

<div id="entry" data-win-control="WinJS.Binding.Template">
    <div data-win-bind="textContent: title">
    </div>
    <a class="action">Action</a>
</div>

绑定(bind)后,我想:

  1. 根据allow_actionaction_type的值更改a.actionclassName
  2. 根据绑定(bind)数据的内容,在绑定(bind)时将事件 (addEventListener) 附加到 a.action。这包括 allow_actionaction_type 和其他值。

基本上,我希望有一个预绑定(bind)或后绑定(bind)回调函数,以元素和绑定(bind)数据作为参数。这对于转换器来说似乎是不可能的,因为转换器不允许您访问其他字段。

同时,我在渲染之后使用 DOM 手动处理这些内容。我想知道是否有更好的选择。谢谢。

更新

根据@GotDibbs和@RSW在评论中的建议,我设法使用Sending multiple parameters to WinJS.Binding.converter() function中的解决方案解决了问题#1。 。我想知道#2 是否仍然可能?

最佳答案

您应该能够通过将所需元素上的事件和 className 属性绑定(bind)到您的模型来实现您正在寻找的内容,就像 previous answer 一样。评论中提到。因此,假设您想绑定(bind)点击事件,您的 anchor 标记将看起来更像这样:

...
<a data-win-bind="className: this Converters.getItemClassName; onclick: this Converters.getItemClickHandler">Action</a>
...

关于javascript - WinJS、data-win-bind 用于脚本控制绑定(bind)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14907125/

相关文章:

javascript - 如何返回 ModelandView 文件和字符串?

javascript - 如何在将 highcharts 系列图下载为图像时将其颜色更改为黑白?

html - 如何在单个按钮上使用 2 个渐变

javascript - JavaScript 如何挂接 WinRT 事件?

java - 如何从ajax get()方法调用的spring Controller 以json格式返回列表对象

javascript - 如何使用jquery旋转鼠标滚轮上的元素?

javascript - Jquery 从 HTMLElement 获取单个元素

windows-8 - 如何使用在任何分辨率下都看起来不错的字体设计 Metro UI?

c# - 如何在 C# WinRT 组件中使用 List<T> 或 Dictionary<T,T2>

javascript - QUnit asyncTest 有什么区别?