2015-11-12 4 views
0

В the first part of this SO answer он говорит применить следующий код, чтобы предотвратить HTML не отображалась в то время как Нокаут переплеты применяются:Как правильно использовать нокаут Видимое связывание?

<div style="display: none;" data-bind="visible: true"> 
    <!-- the rest of your stuff --> 
</div> 

автор состояния:

Как это оказывается перед Нокаут делает его вещь, она будет изначально скрыта. Когда привязки применяются, нокаут переопределяет стиль и делает его видимым.

Это правильно? Будет ли это div не быть постоянно скрытым из-за значения true, позволяющего применять CSSdisplay: none? Как вы могли сделать это видимым после применения привязок?

In the Knockout docs, говорится:

Когда параметр разрешает к истинному значению типа (например, логическое значение истинно, или ненулевой объект или массив), связывание удаляет yourElement.style .display, чтобы он стал видимым.

Обратите внимание, что тогда будет применен любой стиль отображения, который вы настроили с помощью CSS (поэтому правила CSS, такие как display: table-row работают отлично в сочетании с этой привязкой).

+1

Да, это правильно. Этот подход действительно сработал для меня –

+0

Кажется, что это противоречит документации, если я не понимаю что-то. – tallpaul

+0

выглядит отлично для меня @tallpaul. 'visible: true' связывание удалит элемент отображения на элементе только в том случае, если отображение' not' сконфигурировано с помощью css sample здесь switch b/w display 'none & any css class', чтобы наблюдать разницу http://jsfiddle.net/LkqTU/27691 /. –

ответ

1

Документация по нокауту немного ошибочна. Он должен указать, что привязка visible вернется к настройке display правил CSS , а не просто «CSS». Так он стал бы:

Обратите внимание, что любой тип дисплея вы настроили в правилах CSS будут применены (так что правила CSS, как x { display:table-row } прекрасно работают в сочетании с этим обязательным).

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