如何使用knockout绑定动态HTML

时间:2017-08-17 19:05:36

标签: javascript knockout.js data-binding

我有几个HTML页面,我将其转换为块HTML,以便将它们注入我的主容器中。但是,我必须使用敲除绑定,因为ko.applyBindings (viewModel)

如果我使用jQuery $('container').html(...)更改,则不再有效吗?

这是我的代码:

var viewModel = {
    appView: {
        Html: ko.observableArray()
    }
}


 this.loadHtmlToPage = function (htmlblock) {
    var contentPage = function (status) {
        this.chain = ko.observable(status);
    }

    viewModel.appView.Html.push(new contentPage(htmlblock));
 }


<div id="container" data-bind="html: chain"></div>

2 个答案:

答案 0 :(得分:1)

对我来说显而易见的一件事是,每次分配chain时,您都要将observable设置为新chain。要给出可观察的新内容,请将它们作为参数传递。

在viewModel中声明this.chain(status),然后执行div#container更改其内容。这些内容将成为var viewModel = { appView: { Html: ko.observableArray() }, chain: ko.observable() } this.loadHtmlToPage = function(htmlblock) { var contentPage = function(status) { this.chain(status); } viewModel.appView.Html.push(new contentPage(htmlblock)); }

中的新HTML
.step_input > .ing-tag_0

答案 1 :(得分:0)

ko.cleanNode($("#conteneur")[0]);
$("#conteneur").html('chaine');
ko.applyBindings(viewModel, $("#conteneur")[0]);