js中的knockout数据绑定语法(不是HTML)

时间:2015-10-31 00:45:07

标签: javascript knockout.js

我知道我可以在dom中使用以下语法创建绑定:

 <span id="namespan" data-bind="text: personName"> 

这里的工作示例:https://jsfiddle.net/m14mohda/

但是我可以在js中创建这样的span元素吗?即使用类似的东西:

createSpans = function (){
    var s = document.createElement('span')
    s.id = "namespan"
    s.data-bind ="text: personName" -----> ????
    document.body.appendChild(s)
}

1 个答案:

答案 0 :(得分:0)

DOM Element API提供了两种方法。应该使用任何自定义属性的更通用的方法是使用setAttribute方法。

var s = document.createElement('span');
s.setAttribute("someAttribute", "someValue");
s.setAttribute("data-bind", "text: personName");
document.body.appendChild(s);

创建元素

<span someAttribute="someValue" data-bind="text: personName"></span>

特别是对于 data - 前缀的属性,规范包括速记属性访问器dataset

var s = document.createElement('span');
s.dataset.someAttribute = "someValue"; // won't work as expected       
s.dataset.bind = "text: personName";
document.body.appendChild(s);

创建元素

<span data-someAttribute="someValue" data-bind="text: personName"></span>

因此,您可以看到dataset数据 - 前缀视为已授予。然后,可以通过剥离数据 - 部分,通过dataset访问和分配 data - 属性值。