Я использую динамическое имя шаблона. Поэтому я не могу изменить шаблон на основе некоторых выбранных значений. То, что я хотел бы сделать, - это постепенное исчезновение (или любая анимация для этого матера) старых элементов шаблона перед рендерингом нового. Существует эта концепция, если вы повторяете список, но не для самого корневого шаблона. Кто-нибудь пробовал это или получил это на работу?Анимация НокаутJS изменение шаблона
ответ
Вы можете написать свой собственный обработчик переплета:
ko.bindingHandlers.fadeTemplate = {
init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
return ko.bindingHandlers['template']['init'](element, valueAccessor, allBindings);
},
update: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
var value = valueAccessor();
$(element).fadeOut(function() {
ko.bindingHandlers['template']['update'](element, valueAccessor, allBindings, viewModel, bindingContext);
$(this).fadeIn();
});
}
};
Существует действительно хороший пример here.
Что нужно сделать в основном, это добавить код анимации перед визуализацией шаблона, вы увидите, как в примере они создают пользовательские ставки для вызова кода анимации, я думаю, вы должны сделать что-то подобное, если вы положите пример вашего кода, я мог бы помочь вам больше.
Пожалуйста, прочитайте мой пост полностью перед отправкой ответа. Статья, на которую вы ссылаетесь, предназначена только для коллекций, а не для всего шаблона. –
Я думал, поделиться тем, что я сделал, когда я столкнулась с необходимостью для этого и хотел чистое решение, которое не Mixup слишком много с моими взглядами или viewmodels. Я наткнулся на фреймворк css под названием Just Add Water CSS.
Анимация не работает на старых браузерах, но я думаю, что пользовательский интерфейс не имеет никакого значения. Но предпосылка рамки заключается в том, что многие полезные классы анимации css3 определены, и вы просто добавляете их по мере необходимости.
Вы можете анимировать шаблоны, как это очень легко:
<button data-bind="click: toggleTemplate">Toggle template</button>
<ul id="container" data-bind="template: { name: templateToUse, foreach: items }">
</ul>
<script type="text/html" id="myTemplate1">
<li data-bind="text: $data" class="animated fadeInLeft"></li>
</script>
<script type="text/html" id="myTemplate2">
<li class="animated fadeInLeft" >Value is: <span data-bind="text: $data"></span></li>
</script>
И Vm моделировать изменения шаблона:
function vm(){
var self = this;
self.items = ko.observableArray([1,2,3,4,5,6]);
self.templateSwitch = ko.observable(false);
self.toggleTemplate = function(){
self.templateSwitch(!self.templateSwitch());
}
self.templateToUse = function(){
return self.templateSwitch() ? "myTemplate2" : "myTemplate1";
}
}
ko.applyBindings(new vm());
- 1. Вложенная привязка шаблона в нокаутJS
- 2. НокаутJS динамические шаблоны
- 3. НокаутJS Наблюдаемый объект наблюдаемых
- 4. Анимация шаблона в Метеор
- 5. НокаутJS, потерявший viewmodel
- 6. освежающий контроль в нокаутJS
- 7. НокаутJS вычисленный наблюдаемый undefined
- 8. НокаутJS динамическая форма проверки
- 9. Динамический атрибут в нокаутJS
- 10. Функция как нокаутJS наблюдаемый
- 11. нокаутjs подписаться не работает?
- 12. НокаутJS, наблюдающий объект наблюдаемых
- 13. AFRAME модели анимация изменение дорожка на-анимация
- 14. Анимация Изменение текста UILabel
- 15. Анимация данных Изменение хранилища
- 16. анимация в setcontetview изменение
- 17. Анимация TabBar изменение цвета
- 18. Анимация изменений шаблона в Meteor
- 19. Chart.js: изменение шаблона подсказки
- 20. Изменение типа шаблона класса
- 21. Изменение шаблона планшета ProMotion
- 22. Изменение шаблона процесса TFS
- 23. JSRender - динамическое изменение шаблона
- 24. Изменение шаблона django шаблонов
- 25. Изменение шаблона Django/Aldryn
- 26. Изменение шаблона/вида ListView
- 27. Изменение шаблона приложения iOS
- 28. Изменение шаблона WPF StackPanel
- 29. Изменение шаблона комментариев WordPress
- 30. Изменение шаблона заголовка PivotItem?
Я адаптировал это для использования с текстовым связыванием и вам нужно было использовать 'ko.unwrap (valueAccessor())' в обработчике обновлений или он не будет вызван. – jdasilva