在初始化视图模型后,我尝试将数据绑定应用于自生成的DOM元素。但这似乎不起作用,所以我有一个问题:是否有可能使此数据绑定工作完全(也许使用某种更新功能)或没有。
例如:
的HTML:
<div id="content">
<button onclick="create">create DOM ele</button>
</div>
javascript:
function MyViewModel() {
var self = this;
self.title = ko.observable('TITLE');
}
ko.applyBindings(new MyViewModel());
function create() {
div = document.createElement('div');
div.setAttribute('data-bind', 'title()');
document.getElementById("content").appendChild(div);
}
因此,如果按下浏览器检查器查看对象,则将在按下该按钮后创建div,并且数据绑定实际上是DOMelement的属性,但是
viewmodel.title()
的内容将永远不会显示。 最佳答案
数据绑定属性在运行applyBindings时处理,该操作在触发create()之前就已完成。您可以在create()期间在创建期间添加到页面的元素的子树上运行applyBindings。
function create() {
div = document.createElement('div');
div.setAttribute('data-bind', 'title()');
ko.applyBindings(
new MyViewModel(),
div;
)
}
关于javascript - knockout 数据绑定(bind)到自生成的DOM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27846406/