1

knockout.js から読み込まれるコンテンツがいくつかあります。

<div class="knockout-text">
    <label data-bind="html: myText"></label>
</div>

このラベルの高さを確認するために jQuery を少し追加し、100px を超えている場合は [続きを読む] トグルを追加したいと思います。

私の問題は、ノックアウトが呼び出される前に呼び出されるため、ページの下部にスクリプトのスニペットを追加するだけではないように見えることです。

ノックアウトがコンテンツをロードした後に、この jQuery のスニペットを呼び出す方法を教えてください。

(私はノックアウト.jsの経験がないことに注意してください。他の誰かがこれを最初にコーディングし、さらに機能を追加しようとしています)

どうもありがとう!

4

1 に答える 1

5

おそらく最も簡単な方法は、カスタム バインディングを作成することです ( http://jsfiddle.net/C66ab/1/、コンソールを確認してください)。

html:

<div class="knockout-text">
    <label data-bind="html: myText, detectHeight:{}"></label>
</div>

js:

var VM = function(){
    var self = this;
    self.myText = "lorem lorem...<br/>asdad";
}


    ko.bindingHandlers.detectHeight = {
        init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
            console.log($(element).css("height"))
        }
    };

    ko.applyBindings(new VM());
于 2013-10-31T12:19:37.520 に答える