【问题标题】:display ko.observable with html binding使用 html 绑定显示 ko.observable
【发布时间】:2013-05-20 01:34:18
【问题描述】:

看看这个小提琴:http://jsfiddle.net/XuMzS/4/

html:

<input data-bind="value: Total" type="text" />
<textarea cols="50" rows="10" data-bind="value: testHtml, valueUpdate: 'afterkeydown'">
</textarea>
<p>Html:</p>
<div class="wrapper">
<div data-bind="html: testHtml"></div>
<br />
</div>

javascript:

function viewModel() {
var self = this;
self.Total = ko.observable("1337");
self.testHtml = ko.observable();

}

ko.applyBindings(new viewModel());

我要做的是通过在文本区域内编写所需的代码(显示html在它下面的 div 中)。 就像我写的一样:

<span data-bind="text: Total"></span>

但是,如果我写入该代码,则不会显示任何内容。否则正常的 html 正在工作。 有什么方法可以做到这一点吗?

【问题讨论】:

标签: javascript html knockout.js observable


【解决方案1】:

我做了一个样品,我想这就是你要找的。​​p>

function viewModel() {
    var self = this;
    self.Total = ko.observable("1337");
    self.testHtml = ko.observable("<b>test</b><span data-bind=\"text: Total\"></span>");
    self.testHtmlWrapper = ko.computed(function () {
        return '<div id="dynamicContent">' + self.testHtml() + '</div>';
    });

    self.rebind = function () {
        try {
            ko.applyBindings(self, document.getElementById("dynamicContent"));
        } catch (e) {

        }
    };
    self.testHtml.subscribe(self.rebind);

}

var vm = new viewModel();
ko.applyBindings(vm);
vm.rebind();

See Fiddle

希望对你有帮助。

【讨论】:

  • 太棒了,这正是我想要的。谢谢你:)
【解决方案2】:

为什么需要 testHtml observable?

这可以使用下面的代码轻松完成。

视图模型:

function viewModel() {
    var self = this;
    self.Total = ko.observable("1337");
}

ko.applyBindings(new viewModel());

HTML:

<input data-bind="value: Total" type="text" />
<textarea cols="50" rows="10" data-bind="valueUpdate: 'afterkeydown'">
<b>test</b><span data-bind="text: Total"></span>
</textarea>
<p>Html:</p>
<div class="wrapper">
    <div><b>test</b><span data-bind="text: Total"></span></div>
    <br />
</div>

this fiddle

【讨论】:

  • 阅读我的问题,你就会明白。
  • 我确实阅读了您的问题。这就是我发布答案的原因。你的问题有点含糊,这就是为什么我不明白你为什么需要它。
猜你喜欢
  • 2017-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-18
  • 2012-07-18
相关资源
最近更新 更多