如何在viewmodel内容更新更新上调用Jquery函数

时间:2012-09-11 10:57:58

标签: javascript jquery mvvm knockout.js

我有一个用于URL缩短的JQueryFunction 像$(".comment").shorten(); 我通常在加载页面时调用它。

我有一个DIV标记,其内容通过数据绑定填充 喜欢

<div style="float: left; margin: 5px 0px 0px 30px; width: 92%" class="comment">  

<span data-bind="text: Element.Abstract"  style="text-align: justify;"  /> 

我需要知道在哪里调用$(".comment").shorten();函数,以便在绑定内容后,函数可以缩短内容。

1 个答案:

答案 0 :(得分:0)

你有几个选择。

  1. 创建自定义绑定。
  2. 您可以创建由KnockoutJS执行的自定义绑定。您可以选择在init和更新时运行代码。使用jQuery函数响应两者都可以解决问题。然后,您可以将HTML设置为:data-bind="shortenUrl: Element.Abstract"

    有关示例,请参阅documentation

    1. 使用读写属性扩展您的observable并响应write。
    2. 您可以将您的observable视为具有读取和写入功能的属性。 write函数可以先调用jQuery函数然后初始化值。

      有关示例,请参阅documentation

      我的偏好是自定义绑定。这是一个很好的解决方案,可以在多个地方使用而无需重复代码。