0

.dotdotdotで使用される jQuery プラグインに問題がありKnockoutJSます。私は同様の構造を持っています:

<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 を初めて使用するので、問題について助けを求めたいと思います。

4

2 に答える 2

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>
于 2017-07-10T14:48:44.253 に答える