2016-08-02 27 views
0

我有一個問題.dotdotdot jQuery插件與KnockoutJS一起使用。 我也有類似的結構:jQuery dotdotdot插件禁用knocokut綁定

<div class="dotdotdot"> 
    <h3 data-bind="text: Text"></h3> 
</div> 
<input data-bind="value: Text"/> 
<button data-bind="click: someThingsThatTriggerDotdotdotFunction"/>  

的問題是,當dotdotdot函數被調用HTML元素與類dotdotdot然後綁定關係被打破。

$('.dotdotdot').dotdotdot({}); 

h3上面的代碼執行值的輸入值的變化之後將不再更新後。

我是Knockout的新手,所以我想問一些關於我的問題的幫助。

+1

聽起來有衝突。您可能需要使用淘汰賽進行自定義綁定。閱讀這篇文章http://www.knockmeout.net/2011/07/another-look-at-custom-bindings-for.html –

回答

0

我創建了一個自定義綁定處理程序來解決此問題:

ko.bindingHandlers.dotDotDot = { 
 
    update: function (element, valueAccessor, allBindingsAccessor) { 
 
     var options = ko.utils.unwrapObservable(valueAccessor()); 
 
     var value = allBindingsAccessor().dotDotDot.Value; 
 

 
     $(element).html(value()); 
 

 
     var dotdotdot = $(element).parent().truncate(options); 
 

 
     allBindingsAccessor().dotDotDot.Value.subscribe(function (newValue) { 
 
      $(element).html(newValue); 
 
      dotdotdot.trigger("update.dot"); 
 
     }); 
 
    } 
 
};

<div class="announcement-container"> 
    <div data-bind="dotDotDot: { Value: Announcement, height: 80 }"></div> 
</div>