0

У меня есть сайт на основе knockout.js. У меня есть тег-вход, в котором есть элемент с несколькими элементами. Все работает отлично, если они показаны при загрузке. Но я хочу показать их, только если пользователь нажмет кнопку.нокаут бутстрап не нагрузка

Как я могу это сделать?

Благодаря

<!-- ko if: state=="EDIT" --> 
//the default state is not that. Here should appear the tagsinput, but if it's here, don't works 
<!-- /ko --> 
<input id="domains" type="text" value="" data-role="tagsinput" placeholder="Add tags" /> 
+0

Можете ли вы показать нам, что часть вашего кода? Общий ответ: установите видимость при нажатии? – Ivozor

ответ

1

state должен быть наблюдаемым (ko.observable()), и вам нужно вызова его, чтобы получить его значение: if: state() === 'EDIT'.

Пример:

ko.applyBindings({ 
 
    state: ko.observable("DEFAULT") 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script> 
 
<!-- ko if: state() === "EDIT" --> 
 
<h1> Edit section </h1> 
 
<!-- /ko --> 
 

 
<!-- ko if: state() === "DEFAULT" --> 
 
<h1> Default section </h1> 
 
<!-- /ko --> 
 

 
<button data-bind="click: state.bind(null, 'EDIT')">Edit</button> 
 
<button data-bind="click: state.bind(null, 'DEFAULT')">Default</button>

+0

Я вижу в режиме редактирования все остальное, появляется текстовая запись, но она не имеет форматирования и не работает. – 92mate

+1

Если в вашем текстовом поле есть какая-то библиотека редактирования, вы должны написать [специальный обработчик привязки] (http://knockoutjs.com/documentation/custom-bindings.html) для этой библиотеки. – Tomalak

+1

Связывание 'if' удаляет/добавляет элементы из DOM, что может привести к поломке любых ранее инициализированных сторонних виджетов. Вы можете попытаться заменить его на «видимую» привязку. Это связывание не удаляет элемент, который может подойти вам лучше. Обратите внимание, что комментарий @Tomalak по-прежнему верен: любые виджеты должны обрабатываться через пользовательские обработчики привязки. – user3297291

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