J'ai un simple foreach:
<div id="customersArea" data-bind="foreach: people">
<div class="section" data-bind="attr: { 'personid': PersonId }" >
<div class="sectionActions">
<div><a class="action" href="#" data-bind='click: $parent.removePerson'>Remove</a></div>
</div>
<div class="sectionText">
<span data-bind="if:LastName, text:LastName"></span>
<span data-bind="if:FirstName, text:FirstName"></span>
<span data-bind="if:MailingAddress">
<span data-bind="with:MailingAddress">
<span data-bind="text:StreetPartOne"> </span>
<span data-bind="text:StreetPartTwo"> </span>
<span data-bind="text:City"></span>
<span data-bind="text:PostalCode"></span>
</span>
</span>
<span data-bind="if:EmailAddress, text:EmailAddress"></span>
<span data-bind="if:MainPhoneNumber, text:MainPhoneNumber"></span>
<span data-bind="if:MobilePhoneNumber, text:MobilePhoneNumber"></span>
</div>
<div class="sectionOptions">
</div>
</div>
</div>
J'essaie de faire en sorte que je puisse me lier à un modèle {PersonId: 33} et le reste ne sera tout simplement pas rendu s'il manque. quand je l'essaie cela et d'autres façons que je reçois
Uncaught Error: Unable to parse bindings.
Message: ReferenceError: MailingAddress is not defined;
Bindings value: if:MailingAddress
J'ai créé un simple jsfiddle pour tester:
Donc, vous avez quelques options:
KO rencontrera un problème lorsque vous tenterez de vous lier à des propriétés non définies, à moins qu'elles ne soient hors d'un objet. Vous pouvez donc préfixer vos différentes liaisons avec $data.
et KO pourra analyser vos liaisons. Exemple: http://jsfiddle.net/rniemeyer/dLCL8/ Si vous savez que plusieurs propriétés seront toujours ensemble, vous pouvez utiliser un with
ou if
déclaration autour de ces options.
Une approche différente de la gestion des propriétés "non définies" consiste à créer une liaison qui remplit ces propriétés lorsqu'elles sont manquantes. Regardez ceci réponse. Ce serait similaire, mais potentiellement avec la liaison "texte". Exemple: http://jsfiddle.net/rniemeyer/dLCL8/4/
Utilisez le $data
préfixe, KO peut l'analyser
Exemple: http://jsfiddle.net/baryon/NsuL7/1/