2016-04-28 8 views
0

htmlコードを持つ1つの文字列があります。だから私はビューのように拘束していますノックアウトHTMLバインドと文字列に関するHTMLの長さ

今は、HTMLの要素を持つNotesの長さに基づいてdivに1つのクラスを追加します。その後、Notes.length = 12 (With <b> and </b>)

と仮定Notes = "<b>Hello</b>"

は、しかし、私はすべてのHTML要素を交換する必要があると私は(ハロー)5として長さを取得する必要があります。

どうすればこのようにすることができますか?

<div data-bind="html : Notes(), css:{myclass : Notes().length > 5}"></div> 
+1

代わりにHTMLのテキスト – guradio

+0

@guradioを使用します。私は、テキストを使用している場合、それは文字列として、すべての要素を表示します。ここでの問題はhtmlバインディングではありません。私はNotesの長さに基づいて条件をチェックする必要があります()のHTML要素とアウト。 – Rayudu

答えて

2

あなたが作ることができる仮想要素を作成し、そのようにそのテキストの長さを返す計算:

var noteLength = ko.computed(function() { 
    var tempElement = document.createElement("div"); 
    tempElement.innerHTML = Notes(); 

    return tempElement.innerText.length; 
}); 
0

あなたはCSSプロパティによって動的にクラスを追加し、その後、attrが静的クラスを追加することができます。プロパティ。詳細は以下のリンクから入手できます。これが役に立たない場合は、私に知らせてください。

combine dynamic and static classes through css binding, knockout.js

関連する問題