使用 WinJS 进行数据绑定,与淘汰一样强大
Databinding with WinJS as powerful as with knockout?
我最近开始用HTML/CSS/JS开发Win8应用程序。2 周后,出现了有关使用 WinJS 进行数据绑定的问题:
是否有可能通过 WinJS 执行数据绑定,就像 knockout.js(WinJS 可以做所有可以做的事吗)一样强大?
如果是这样,我将如何仅使用 WinJS 执行淘汰赛的ko.applyBindings()
?
虽然"同样强大"是相当主观的,但 WinJS 有一个非常强大的绑定引擎。它不一样,但与淘汰赛有一些共同的特点。它以某种方式与以前称为Microsoft ASP.NET Ajax Library共享一些细节。
这是他们的例子之一:
<div id="boundDiv" data-win-bind="innerText: age"></div>
<script type="text/javascript">
var person = { age: 0 };
var span = document.getElementById("boundSpan");
WinJS.Binding.processAll(span, person);
var bindingPerson = WinJS.Binding.as(person);
setInterval(function () {
changeAge(bindingPerson);
}, 500);
function changeAge(p) {
p.age++;
};
</script>
每 500 毫秒,div
将更新以反映person
的新age
。由于它利用了 ECMAScript 5 的 Object 属性获取者和设置器,因此可以轻松跟踪年龄的值,然后在div
中更新。
在以下帖子中,这两种方法都有一个完整的示例:
http://www.progware.org/Blog/post/Data-binding-in-Windows-8-Apps-with-Knockout.aspxhttp://www.progware.org/Blog/post/Data-binding-in-Windows-81-Apps-with-WinJS.aspx
这两种方法都应用于同一个视图模型,并且所有内容都得到支持(双向绑定、转换器等)。
WinJS 中不幸缺少的一件事是双向数据绑定。因此,您必须编写一些代码,以便将 UI 中的用户输入返回到视图模型中。
因此,您可以像 SDK 示例中一样为控件实现更改处理程序,也可以使用表达式混合博客中更通用的解决方案
- 淘汰搜索/筛选
- 消息显示之外的淘汰验证
- 使用向下箭头键(与tab键一样)聚焦下一个输入
- 淘汰映射;不起作用
- 如何正确引用传递到淘汰中的当前元素的属性.JS
- 在SVG地图上添加水的渐变,就像在谷歌地图(PHP/JS)中一样
- 如何像模糊图像一样模糊iframe
- FullCalendar:事件发生时阻止重叠.标题是一样的
- 如何检测滚动事件是否像在触摸设备上一样只触发一次
- DIV怎么能像Javascript中的另一个元素一样工作呢
- 我正在创建一个聊天,但每次我发送消息时,它都不会让我再发送另一条消息,就像表格一样;不起作用
- 有没有8个谜题和15个谜题一样无法解决
- 如何缩放像图像一样的元素
- 我需要iframe的内容像动画一样展开,填满整个屏幕并缩小到原来的大小
- 是否可以像字符串一样/操作/函数
- 我可以像其他库一样将JointJS作为AngularJS模块注入吗
- 什么是淘汰赛中的根管理员.js以及它指向什么
- 可排序和可丢弃的淘汰列表
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- 使用 WinJS 进行数据绑定,与淘汰一样强大