Nehmen wir an, ich habe:Wiederholen Sie mehrere Tags ohne einen Container in Aurelia Schaffung
<template>
<!-- some code here -->
<div>
<div repeat.for="item of arr">
<label for.bind="item.id">${item.name}</label>
</div>
<div repeat.for="item of arr">
<input type="text" id.bind="item.id" value.bind="item.value" />
</div>
</div>
<!-- more code here -->
</template>
Und nehmen wir an, dass die arr
Eigenschaft meiner Ansichtsmodell ist:
arr = [
{ id: 'txtID', name: 'ID', value: '' },
{ id: 'txtFirstName', name: 'First Name', value: '' },
{ id: 'txtLastName', name: 'Last Name', value: '' }
];
Aurelia wird es machen so:
<!-- some code here -->
<div>
<div>
<label for='txtID'>ID</label>
</div>
<div>
<label for='txtFirstName'>First Name</label>
</div>
<div>
<label for='txtLastName'>Last Name</label>
</div>
<div>
<input type="text" id="txtID" value="" />
</div>
<div>
<input type="text" id="txtFirstName" value="" />
</div>
<div>
<input type="text" id="txtLastName" value="" />
</div>
</div>
<!-- more code here -->
Aber ich brauche es so zu machen:
<!-- some code here -->
<div>
<div>
<label for='txtID'>ID</label>
</div>
<div>
<input type="text" id="txtID" value="" />
</div>
<div>
<label for='txtFirstName'>First Name</label>
</div>
<div>
<input type="text" id="txtFirstName" value="" />
</div>
<div>
<label for='txtLastName'>Last Name</label>
</div>
<div>
<input type="text" id="txtLastName" value="" />
</div>
</div>
<!-- more code here -->
Es gibt zwei Bedingungen:
- Ich kann sie nicht in einen Behälter
- ich nicht erstellen benutzerdefiniertes Element
Und Jungs, bitte, bitte ich Sie zu verstehen, dass meine Frage ist:
Wie kann ich repeat.for verwenden, um mehrere Objekte zu wiederholen, ohne einen Container zu erstellen??
Schlage nicht vor, meinen HTML-Code oder ähnliches zu ändern, weil ich dies nur als Beispiel für etwas erstellt habe, das ich immer benötige, und immer mit der Erstellung eines Containers (oder eines containerlosen benutzerdefinierten Elements) beginne Ich habe keinen Container, aber ich würde gerne wissen, ob es irgendeinen Weg gibt, dies reibungslos zu machen.
Zum Beispiel in KO, sobald wir den foreach
Befehl in der Eltern setzen, konnte ich einfach tun:
<!-- some code here -->
<div data-bind="foreach: arr">
<div>
<label data-bind="for: id">{{name}}</label>
</div>
<div>
<input type="text" data-bind="id: id, value: value" />
</div>
</div>
<!-- more code here -->
Seien Sie vorsichtig, wenn Sie versuchen, das Tag 'template' in IE _inside_ a table, z. um mehrere td-Elemente zu wiederholen. Mit IE ist das nicht möglich. Siehe https://github.com/aurelia/html-template-element/issues/3 – thinkOfaNumber