锚标记的数据绑定href属性

时间:2011-11-14 14:37:05

标签: javascript html5 data-binding knockout.js

我正在尝试将锚属性绑定到KnockoutJS ViewModel字段。我试过这样的事情:

<a data-bind="href: Link, value: Title"></a>

但这不起作用。我可以在哪里获得html元素的可能数据绑定值列表?

4 个答案:

答案 0 :(得分:95)

您需要使用attr绑定,这允许您设置您喜欢的任何属性。

例如:

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

答案 1 :(得分:12)

您可以在此找到所有可能绑定的列表。

http://knockoutjs.com/documentation/value-binding.html

在左侧(侧边栏),您可以找到其他绑定的链接,如文本,attr样式等。

你可以这样做

attr: { href: Link}, text: Title,例如xwrs评论

或创建模板 http://knockoutjs.com/documentation/template-binding.html

希望这会有所帮助

答案 2 :(得分:1)

作为@RichardFriend's answer替代(以及更常用的选项),您可以编写一个自定义绑定处理程序,使您的视图更简洁:

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

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

<a data-bind="href: myUrl, text: myText"></a>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

这对我来说非常适合

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