为锚标签绑定href属性

41
我正在尝试将锚点属性绑定到KnockoutJS ViewModel字段。我尝试了这样的代码:
<a data-bind="href: Link, value: Title"></a>

但这并不起作用。我在哪里可以获得HTML元素可能的data-bind值列表?

4个回答

99
你需要使用attr 绑定,这允许你设置任何你想要的属性。

例如:

<a data-bind="attr: { href: Link, title: Title }, text: Title">xxx</a>

12

感谢。找到解决方案 <a data-bind="attr: { href: Link}, text: Title"> </a>。 - xwrs

1
作为@RichardFriend's answer的一种替代方案(也是更常用的选项),你可以编写自定义绑定处理程序,使你的视图更加简洁:

ko.bindingHandlers['href'] = {
  update: function(element, valueAccessor) {
    element.href = ko.utils.unwrapObservable(valueAccessor());
  }
};

ko.applyBindings({
  myUrl: 'http://stackoverflow.com',
  myText: 'Stack Overflow website'
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>

<a data-bind="href: myUrl, text: myText"></a>


0

这对我来说完美无缺

            <td class="CommandArea" rowspan="2">
            <p><a href='#' data-bind="click: abandon" >Abandon</a></p>
            </td>

你能否编辑你的回答并解释它如何回答这个问题? - soundslikeodd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接