У меня есть веб-страница, содержащая список игр. Каждая игра представлена пользовательским элементом управления, который содержит несколько ярлыков, в которых хранятся свойства игры (время, баллы, игроки и т. Д.). Таким образом, один и тот же пользовательский элемент управления повторяется несколько раз на странице. Данные изменяются каждую минуту, чтобы поддерживать живой ковариатор игры. Я надеялся использовать нокаут для обновления всех меток в пользовательском элементе управления, но поскольку каждый пользовательский элемент управления должен привязываться к другим игровым данным, а пользовательский элемент управления не может иметь свою собственную модель представления, я не знаю, какой лучший подход к этому сценарий. Мне нужно что-то вроде динамического ViewModel и динамических атрибутов привязки данных, но я не мог найти никакой информации по этому вопросу.Использование нокаута с повторяющимися пользовательскими элементами управления
1
A
ответ
1
Демонстрация template binding с использованием data
и foreach
с помощью этого же шаблона. Вы можете видеть в JS, что данные являются типом, game
, но мы dislpaying их отдельно в HTML.
HTML
<!-- ko if: favoriteGame -->
<h1>Favorite Game</h1>
<div data-bind="template: { name: 'gameTemplate', data: favoriteGame }"></div>
<!-- /ko -->
<h1>All Games</h1>
<div data-bind="template: { name: 'gameTemplate', foreach: games }"></div>
<script type="text/ko" id="gameTemplate">
<div>
<span class="gameName" data-bind="text: name"></span>
<span data-bind="text: publisher"></span>
<input data-bind="value: score" />
<button data-bind="click: $parent.favoriteGame">Favorite</button>
</div>
</script>
Javascript
var Game = function(data) {
this.name = ko.observable(data.name || "");
this.publisher = ko.observable(data.publisher || "");
this.score = ko.observable(data.score || 0);
};
var ViewModel = function(init) {
var self = this;
self.favoriteGame = ko.observable();
self.games = ko.observableArray(ko.utils.arrayMap(init, function(g) {
return new Game(g);
}));
};
Обратите внимание, что click: $parent.favoriteGame
связывания выбирает любимую игру непосредственно. Нокаут передает текущий контекст как первый параметр для привязки к функциям, а так как наблюдаемые - это функции, это обновляет наблюдаемые напрямую, без необходимости использования функции-обертки.
Вы можете взглянуть на это в this fiddle. Не совсем понятно, что вы после, у вас нет кода в вашем вопросе. Надеюсь, это не слишком далеко.
Смежные вопросы
- 1. МОФ с пользовательскими элементами управления
- 2. Приложение WPF с несколькими пользовательскими элементами управления
- 3. Динамический вид сетки с пользовательскими элементами управления
- 4. wpf привязка флажка с пользовательскими элементами управления
- 5. Проект WPF с пользовательскими элементами управления XAML
- 6. Как показать дизайнера с пользовательскими элементами управления
- 7. Строительство открытых стеллажей с пользовательскими элементами управления
- 8. ExpandableListView с пользовательскими элементами управления в android
- 9. Как связаться с пользовательскими элементами управления ASP.net
- 10. Lazy загрузочные вкладки с пользовательскими элементами управления
- 11. Работа с динамическими пользовательскими элементами управления
- 12. WPF вкладка с пользовательскими элементами управления?
- 13. Проблемы с пространством имен между пользовательскими/пользовательскими элементами управления
- 14. Элемент управления пользовательскими элементами тестирования в Silverlight
- 15. Python «set» с повторяющимися/повторяющимися элементами
- 16. GWT combobox с пользовательскими элементами
- 17. Разметка стека WPF между пользовательскими элементами управления
- 18. В чем разница между элементами управления пользователя, элементами управления сервером и пользовательскими элементами управления?
- 19. Данные, передаваемые Winform между пользовательскими элементами управления
- 20. Siliverlight 3 Навигация между пользовательскими элементами управления?
- 21. Как взаимодействовать между пользовательскими элементами управления
- 22. C# winforms связь между пользовательскими элементами управления
- 23. Доступ к данным между пользовательскими элементами управления
- 24. QTreeView с пользовательскими элементами
- 25. создание кортежа с повторяющимися элементами
- 26. XML-схемы с повторяющимися элементами
- 27. Список перестановок с повторяющимися элементами
- 28. Deserialize XML с повторяющимися элементами
- 29. Бесконечная последовательность с повторяющимися элементами
- 30. NSFetchedResultsController разделы с повторяющимися элементами
Вы можете предоставить нам то, что у вас есть до сих пор? Некоторые HTML? некоторые Javascript? И когда вы говорите «Пользовательский контроль», вы говорите об элементах управления ASP.Net Server? –
Элементы управления могут иметь свою собственную модель представления и привязываться к разным данным. Взгляните на привязки 'template' и' foreach'. – Tyrsius
Tyrsius - спасибо, что указал мне в правильном направлении, я никогда не знал, что вы можете поместить объявление разметки User Control в качестве шаблона. – Offa