【问题标题】:Is there a way to modify a json string within the html while reading it in?有没有办法在读取时修改 html 中的 json 字符串?
【发布时间】:2017-12-09 00:38:03
【问题描述】:

所以我的 JSON 中有一个复杂的对象结构,它是一个包含每个元素的许多属性的列表。我希望能够访问 name 属性并将其全部输出,即:“task one”并在加载将引用“link-to-task-one”的文本时动态添加一个 href。

我正在使用淘汰赛js,这就是线条的样子

<a class="this-class" data-bind="text: taskName attr: {href: '#link-to-'+taskName.replace(/\s+/g,'-')}"></a>

我知道 js 函数 replace 在 html 文档中不起作用,我只是想知道是否有办法强制 json 像在某些标签中一样呈现,或者是否有人可以帮我找出一种方法来放在那里这不会花费太多时间。

或者如果我很愚蠢,应该在我的 JSON 中添加另一个名为 'ref' 的属性或其他东西

【问题讨论】:

  • 可以使用属性绑定吗? knockoutjs.com/documentation/attr-binding.html。您能否提供一些您的 json,以便我们了解您在说什么?
  • 我不知道您的代码是否有拼写错误,但如果taskName 是可观察的:<a class="this-class" data-bind="text: taskName, attr: {href: '#link-to-'+taskName().replace(/\s+/g,'-')}"></a>,这可能会起作用。我在attr之前加了一个逗号(可能是你打错了),taskName.replace()变成了taskName().replace(),因为你需要得到observable的值,它是一个函数。

标签: javascript html json parsing knockout.js


【解决方案1】:

为什么不给你的模型添加一个计算:

self.link = ko.computed(function () {
    return '#link-to-' + self.taskName().replace(/\s+/g,'-');
}, self);

然后:

<a class="this-class" data-bind="text: taskName, attr: { href: link }"></a>

【讨论】:

    猜你喜欢
    • 2021-07-08
    • 2017-11-13
    • 2020-11-20
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 2021-05-15
    • 1970-01-01
    相关资源
    最近更新 更多