没有污染的不引人注目的淘汰赛

时间:2012-02-21 17:51:05

标签: data-binding knockout.js unobtrusive-javascript

是否有任何“不显眼的淘汰赛”插件没有将数据绑定属性重新引入dom的元素? 我尝试了一些像:http://userinexperience.com/?p=633 和Jquery插件。

所有这些问题都是他们不断将数据绑定引入dom。是否有任何其他插件可以做更多的事情,就像将数据绑定放在像http://docs.jquery.com/Data

这样的expando中

3 个答案:

答案 0 :(得分:5)

淘汰赛。不引人注意的插件是我最初尝试远离data-bind属性,并且当我创建它时,将绑定模型元素添加回DOM是我能想到的唯一合理方法。

正如Ryan在上面指出的那样,Knockout 2.0允许创建自定义绑定提供程序,用您的首选策略替换data-bind属性。因此,我目前正在更新我的插件以提供其中一个提供程序,这将消除在运行时对DOM的任何写入。您可以在ko-v2 branch here上查看我的进度。如果您有任何意见或建议,请与我们联系。并且要注意,我只是开始使用,所以没有任何工作,但我应该在第二天左右另外提交一两个提交。


2-28-12更新

我在上面的分支机构添加了一些额外的测试和功能。当前的功能是基本的,但到目前为止满足了规避数据绑定的要求。

让我知道你的想法。这最终可能被分拆成一个新项目(Knockout.Unobtrusive关闭)

答案 1 :(得分:3)

这篇文章介绍了如何创建自己的自定义绑定提供程序:http://www.knockmeout.net/2011/09/ko-13-preview-part-2-custom-binding.html

创建一个自定义绑定提供程序很容易,该提供程序从jQuery $ .data或expando属性保存/加载其数据(可以使用ko.utils.domData.get / set)。

绑定提供程序只需要实现nodeHasBindingsgetBindings函数。

如果你需要进一步帮助实现这样的事情,请告诉我。

答案 2 :(得分:1)

很抱歉重新打开一个旧问题,但我正在寻找类似的东西,找不到足够灵活的东西来满足我们的需求。只花了大约30分钟来写我自己,here's我想出的。