我试图做自己的数据绑定代码,主要是为了学习,所以我确切地知道发生了什么。应该在哪里指定数据绑定的相关详细信息?我看过两种方法。
A)在HTML元素上指定自定义数据属性,以指示绑定目标,属性,要绑定的元素属性等。
<input type="text" data-model="myState" data-attr="value:title" data-events="keyup" />
数据模型指定要绑定的JS对象,attr是元素属性和object属性,而event是触发绑定的事件。然后,JS代码可以基于这些属性自动识别并添加侦听器。
这是我最初基于以下代码的示例:
https://stackblitz.com/edit/two-way-data-binding-poc
B)我看到的另一种方法是从JS端进行数据绑定,并使用元素ID通过JS代码指定侦听器和属性。这意味着HTML只需要一个ID,而其他所有内容都在JS中指定。如果我正确理解了代码,则认为此SO QA属于以下类型:
How to Implement DOM Data Binding in JavaScript
两个概念(我一般都假定数据绑定)都需要知道要绑定的对象,UI元素和属性。在UI代码(A)或JS代码(B)中这样做更好吗?
或者,A和B在不同情况下是否同样有效?这是针对单页应用程序的,我打算将尽可能多的状态信息直接存储在服务器上,并使用JS处理动态交互。
经过深思熟虑,A的一个好处是您可以在仅更新UI代码的同时更改绑定状态的可视化。选项B将需要同时修改UI代码和JS代码以添加或更改元素。
答案 0 :(得分:0)
我只见过在具有一些JS挂钩的HTML / CSS库上实现A。
For instance, Zurb's Foundation seems to use that for their "Sticky" plugin。
但是我会使用久经考验的路由,然后选择:
B)我看到的另一种方法是从JS端进行数据绑定,并使用元素ID通过JS代码指定侦听器和属性。这意味着HTML只需要一个ID,而其他所有内容都在JS中指定。如果我正确理解了代码...
$('#someid').val(valuehere,codehere,anything);