Reputation: 55
I am trying to format a knock model that contains objects with two sub objects. When I try to include a header for the sub object the second one ends up outside the group I expect. Please let me know if there are issues with the coding or my expectations.
Expectation:
Header Prop1 Prop2 List1 Header List1 Item1 List1 Item2 List2 Header List 2 Item 1 List 2 Item 2
What I get:
Header Prop1 Prop2 List1 Header List1 Item1 List1 Item2
List 2 Item 1 List 2 Item 2
List2 Header
Code Is:
<div id="tourneys_in_progress">
<h2>Open Tournaments</h2>
<div id="tourneys">
<ul data-bind="template: { name: 'tourneyTemplate', foreach: tourneys.CurrentTournaments }"></ul>
<script id="tourneyTemplate" type="text/html">
<li class="tourneys">
<div class="tourney">
<div data-bind="text: 'TournamentType: ' + TournamentTypeString"></div>
<div data-bind="text: 'Number of Rounds: ' + Rounds" ></div>
<div data-bind="text: 'Boards: ' + Boards" ></div>
<div data-bind="text: 'Players per Board: ' + PlayersPerBoard"></div>
<div data-bind="text: 'Time Control: ' + TimeControlString"></div>
<div data-bind="attr: { title: TournamentId }" class="join_tourney command">Cancel Tournament</div>
<div data-bind="attr: { title: TournamentId }" class="leave_tourney command">Start Round</div>
<div data-bind="attr: { title: TournamentId }" class="leave_tourney command">End Round</div>
<div>
<ul data-bind="template: { name: 'gamesTemplate', foreach: TournamentGames }"></ul>
<ul data-bind="template: { name: 'playersTemplate', foreach: TournamentPlayers }"></ul>
<h3>Current Tournament Games</h3>
<script id="gamesTemplate" type="text/html">
<li class="players">
<div class="left_align" data-bind="text: 'Tournament Players: ' + TournamentPlayersList + ' '"/>
<div class="right_align" data-bind="text: GameStatusText" />
<div class="command">Set Game</div>
</li>
</script>
<h3>Current Tournament Players</h3>
<script id="playersTemplate" type="text/html">
<li class="players">
<span class="left_align" data-bind="text: PlayerName + ' '"/>
<img data-bind="attr: { src: 'https://graph.facebook.com/' + FbId + '/picture?width=25&height=25' }" />
<span class="right_align" data-bind="text: PlayerRanking" />
</li>
</script>
</div>
</li>
</script>
</div>
</div>
Thanks for your help.
Upvotes: 0
Views: 246
Reputation: 55
I was able to get the formatting I wanted with the following html markup:
<div id="tourneys_in_progress">
<h2>Open Tournaments</h2>
<div id="tourneys">
<ul data-bind="template: { name: 'tourneyTemplate', foreach: tourneys.CurrentTournaments }"></ul>
<script id="tourneyTemplate" type="text/html">
<li class="tourneys">
<div class="tourney">
<div data-bind="text: 'TournamentType: ' + TournamentTypeString"></div>
<div data-bind="text: 'Number of Rounds: ' + Rounds" ></div>
<div data-bind="text: 'Boards: ' + Boards" ></div>
<div data-bind="text: 'Players per Board: ' + PlayersPerBoard"></div>
<div data-bind="text: 'Time Control: ' + TimeControlString"></div>
<div data-bind="attr: { title: TournamentId }" class="join_tourney command">Cancel Tournament</div>
<div data-bind="attr: { title: TournamentId }" class="leave_tourney command">Start Round</div>
<div data-bind="attr: { title: TournamentId }" class="leave_tourney command">End Round</div>
<div>
<h3>Current Tournament Games</h3>
<ul data-bind="template: { name: 'gamesTemplate', foreach: TournamentGames }"></ul>
<h3>Current Tournament Players</h3>
<ul data-bind="template: { name: 'playersTemplate', foreach: TournamentPlayers }"></ul>
<script id="gamesTemplate" type="text/html">
<li class="players">
<p class="left_align" data-bind="text: 'Tournament Players: ' + TournamentPlayersList + ' '"></p>
<p class="right_align" data-bind="text: GameStatusText"></p>
<div class="command">Set Game</div>
</li>
</script>
<script id="playersTemplate" type="text/html">
<li class="players">
<span class="left_align" data-bind="text: PlayerName + ' '"/>
<img data-bind="attr: { src: 'https://graph.facebook.com/' + FbId + '/picture?width=25&height=25' }" />
<span class="right_align" data-bind="text: PlayerRanking" />
</li>
</script>
</div>
</div>
</li>
</script>
</div>
</div>
Thanks for the input.
Upvotes: 1