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

max*_*dbe 6 data-binding unobtrusive-javascript knockout.js

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

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

Bra*_*rom 5

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

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


2-28-12更新

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

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


RP *_*yer 3

以下文章展示了如何创建您自己的自定义绑定提供程序:http://www.knockmeout.net/2011/09/ko-13-preview-part-2-custom-binding.html

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

绑定提供者只需要实现nodeHasBindingsgetBindings运行即可。

如果您需要进一步帮助实施类似的事情,请告诉我。