Data binding angular.js(或knockout.js)与其他UI库的集成?
我将对web应用程序使用knockout.js或angular.js libs(绑定支持的b/c) 我的问题是-您如何将这些库集成到现有的UI库(如Dojo、jQueryUI、Ext.js、YUI等)中,。。Data binding angular.js(或knockout.js)与其他UI库的集成?,data-binding,knockout.js,angularjs,Data Binding,Knockout.js,Angularjs,我将对web应用程序使用knockout.js或angular.js libs(绑定支持的b/c) 我的问题是-您如何将这些库集成到现有的UI库(如Dojo、jQueryUI、Ext.js、YUI等)中,。。 例如,UI库中数据绑定支持/语法的使用情况如何?为了使用小部件表单UI库,您是否必须实现自定义绑定之类的功能?通常,您需要实现自定义绑定来处理外部库,但通常有大量开源工作已经取得了相当大的进展。退房 如果没有可用的,那么实现您自己的并不十分复杂: 对于淘汰赛情况相当不错。可以通过与第三方
例如,UI库中数据绑定支持/语法的使用情况如何?为了使用小部件表单UI库,您是否必须实现自定义绑定之类的功能?通常,您需要实现自定义绑定来处理外部库,但通常有大量开源工作已经取得了相当大的进展。退房 如果没有可用的,那么实现您自己的并不十分复杂:
对于淘汰赛情况相当不错。可以通过与第三方小部件集成。bindingsapi非常简单,而且非常简单。您只需实现一个或两个方法(引用淘汰文档): 大多数情况下,实现单个
update
方法就足够了。甚至还有。它并没有涵盖所有jQueryUI小部件,但由于创建自定义绑定非常简单,您可以根据需要实现自己的绑定
至于角JS情况更为困难。您可以创建自定义绑定作为自己的一部分。指令API要求您编写更多的代码。指令的生命周期也相当复杂。因此,他们需要相当多的时间来学习
同时,它允许您指定行为的许多不同方面。例如,您可以通过指令
完全重写小部件的内部HTML表示,并在内部使用角度模板。在淘汰赛中,您需要使用jQuery来实现这一点。不幸的是,与自定义绑定不同,Knockout指令更适合编写自己的小部件,而不适合与现有小部件集成
总结如下:
- 敲除绑定更容易。与第三方小部件集成很容易
- Angular指令更适合编写自己的小部件,但同时功能更强大
ko.bindingHandlers.yourBindingName = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
// This will be called when the binding is first applied to an element
// Set up any initial state, event handlers, etc. here
},
update: function(element, valueAccessor, allBindingsAccessor, viewModel) {
// This will be called once when the binding is first applied to an element,
// and again whenever the associated observable changes value.
// Update the DOM element based on the supplied values here.
}
};