【问题标题】:String with HTML tags isn't being recognized inside foreach在 foreach 中无法识别带有 HTML 标记的字符串
【发布时间】:2014-09-23 20:51:36
【问题描述】:

我在 JSON 对象中有一个字符串作为属性。该字符串包含标签,以便为其设置一些样式。我面临的问题是,无论 HTML 标签写得如何,它都没有得到预期的结果。我应该改变我对这部分的编程方式吗?

Javascript - 视图模型:

function viewModel() {

   var self = this;
   self.text = ko.observableArray();
   self.text = ko.computed(function() {
           $.ajax({
               type: "GET",
               async: false,
               contentType: "application/json; charset=utf-8",
               global: false,
               url: "../../webresources/myappresource/getitemdescription/001/102001/",
                    datatype: "json",
                    success: function(data) {
                        itemdata = data;
                    }
                });
                return itemdata;
            }, this);

            this.itemsList = ko.observableArray(itemdata);             
     };
  ko.applyBindings(new viewModel()); 

HTML + 淘汰赛:

  <tbody data-bind="foreach: itemsList"  name="myitems">
    <tr>
      <td>
          <input id="selectItem" type="checkbox">
      </td>
      <td>
          <h5 data-bind="text:itemDescription"></h5>
      </td>
   </tr>
  </tbody>

JSON 对象结构:

[
    {
      "dscitem": " <b>Colour</b>: Green, <br/> <b>Weight</b>: 50.00,<br/> <b>Description</b>: suchitemdescription and so on,<br/> ",
      "skuitem": 110
    }
]

预期的结果是使用 html 标记增强的相同文本。与此相反,我得到了我想要的列表,这很酷,但显示的描述是没有任何样式的整个字符串,实际上,文本的方式与对象中的相同,应用程序的纯宇宙文本-用户。对这里发生的事情有任何想法吗?

【问题讨论】:

  • 你试过html绑定 -
  • @IlyaLuzyanin 先生,这非常完美,谢谢。我没有尝试过淘汰赛的那个属性,但现在我知道它是如何实现的。
  • 好的,我已经添加了我的解决方案作为答案,你能接受吗?
  • 当然,我已经做到了!你的答案很震撼。

标签: javascript json html knockout.js


【解决方案1】:

问题是(除了代码 sn-ps 中的语法错误)您使用的是文本绑定而不是 html binding

所以替换

<h5 data-bind="text:itemDescription"></h5>

<h5 data-bind="html:itemDescription"></h5>

【讨论】:

    猜你喜欢
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多