【问题标题】:Knockout binding on the anchor tag锚标记上的敲除绑定
【发布时间】:2016-08-20 03:51:54
【问题描述】:

我有一个锚标签,里面有这样的图标:

<a>
    <i class="icon-flip-2"></i>
    hello
</a>

我想用绑定元素替换 hello 文本。比如:

<a data-bind="text: myValue">
    <i class="icon-flip-2"></i>
    hello
</a>

问题是我丢失了元素

我想保留它并能够在锚标记上绑定一些东西。

谢谢。

有什么想法吗?

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

    使用虚拟元素

    <a>
        <i class="icon-flip-2"></i>
        <!-- ko text: myValue --><!-- /ko -->
    </a>
    

    &lt;span&gt;

    <a>
        <i class="icon-flip-2"></i>
        <span data-bind="text: myValue, if: myValue().length > 0"></span>
    </a>
    

    【讨论】:

    • 虚拟元素似乎符合他的需要。它为他提供了一种无需使用新跨度即可绑定文本的方法。
    • @sngregory 我会使用带有if: 绑定的跨度,但这只是个人喜好。
    • 我同意你的观点,但这似乎与他想要完成的目标背道而驰,因为这需要更改 CSS。
    【解决方案2】:

    将文本放在 a 标签内的 span 中,然后绑定 span 的 text 属性。

    【讨论】:

      【解决方案3】:

      我很想把你的文字放在一个跨度中:

      <a>
          <i class="icon-flip-2"></i>
          <span data-bind="text: myValue"></span>
      </a>
      

      【讨论】:

      • @Golo:我宁愿避免使用额外的跨度,因为我必须调整我的 css。
      • 老实说,如果您要将一个 html 元素包含在另一个元素中,我更愿意将所有内容都包含在一个元素中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      • 2014-06-27
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      相关资源
      最近更新 更多