【问题标题】:Data-bind href attribute for anchor tag锚标记的数据绑定 href 属性
【发布时间】:2011-12-28 17:13:52
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript html data-binding knockout.js


    【解决方案1】:

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

    例如:

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

    【讨论】:

      【解决方案2】:

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

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

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

      你可以这样做

      attr: { href: Link}, text: Titlexwrs评论

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

      希望对你有帮助

      【讨论】:

      • 谢谢。找到解决方法
      【解决方案3】:

      作为@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>

      【讨论】:

        【解决方案4】:

        这很适合我

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

        【讨论】:

        • 你能编辑你的答案并解释它是如何回答这个问题的吗?
        猜你喜欢
        • 1970-01-01
        • 2012-06-08
        • 1970-01-01
        • 2018-05-22
        • 2015-05-09
        • 2011-07-14
        • 2020-10-13
        • 1970-01-01
        相关资源
        最近更新 更多