2016-04-28 2 views
0

У меня есть одна строка, которая имеет html-код. Поэтому я связывании с точки зрения какНокаут HTML-привязка и длина HTML в терминах строки

<div data-bind="html : Notes()"></div> 

Теперь я хочу добавить один класс Div на основе длины Notes с из Html элементов.

Пусть Notes = "<b>Hello</b>", то Notes.length = 12 (With <b> and </b>)

Но мне нужно, чтобы заменить все HTML элементы, и мне нужно, чтобы получить длину, как 5 (Hello).

Как я могу достичь этой ниже строки.

<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

Смежные вопросы