Ich habe eine Benutzer-Tabelle, jeder Benutzer ist anklickbar, sobald Sie darauf klicken - ein modales Pop-ups mit den Informationen des Benutzers.Hinzufügen von Bedingung zu Data-Bind = "mit"
die div
des modalen:
<div class="infoForm" data-bind="with: $root.selectedItem">
<input id="companyName" placeholder="Company Name" data-bind="value: name" />
<div class="cont">
<label for="address">ADDRESS</label>
<input class="contField" placeholder="Address 1" id="address" data-bind="value: address1" />
<input class="contField" placeholder="Address 2" id="address2" data-bind="value: address2" />
<input class="contField" id="city" placeholder="City" data-bind="value: city" />
<input class="contField" id="state" placeholder="State" data-bind="value: state" />
<input class="contField" id="zip" placeholder="Zip" data-bind="value: zip" />
...
</div>
Das Problem ist, dass, wenn selectedItem
leer ist, die modalen popups leer, ohne Inhalt.
Ich wollte eine Bedingung für die data-bind
hinzufügen nur passieren, wenn $root.selectedItem
nicht null
becasue ist, wenn ich die data-bind
überhaupt nehmen es funktioniert.
Ich habe versucht, dass:
<div class="infoForm" data-bind="with: $root.selectedItem ? $root.selectedItem : ''">
.....
</div>
Aber es funktioniert nicht, es funktioniert einfach nicht passieren, in anderen Arten von Bindung (text
, value
es funktioniert).
Die selectedItem
gesetzt wird, wenn einer der Benutzer auf dem Tisch angeklickt wird:
<td class="name n" data-bind="text: name, click: $root.setSelectedItems.bind($data)"></td>
The View Modell:
var UsersViewModel = function() {
var self = this;
self.selectedItem = ko.observable();
...
self.setSelectedItems = function (selectedUser) {
if (selectedUser) {
self.selectedItem(selectedUser);
}
}
}
Jede Idee, wie das erreichen?
Wenn 'selectedItem' gleich' null', die 'infoForm' inneren Elemente sollten nicht gerendert noch dagetenbundenen werden .. Beachten Sie auch, dass Sie, wenn Sie 'if' /' else' Logik in Ihre Daten-binds setzen und Observables verwenden, diese aufrufen müssen: '$ root.selectedItem()?/* ... * /:/* ... */' – user3297291
@ user3297291 Danke, dieses div ist ein Modal, dass Popups auf Knopf klicken, das erste Mal das Modal geöffnet wird, wenn' selectedItem' 'null' ist das modal kommt leer, wenn ich 'data-bind = 'mit: $ root.selectedItem' herausnehme, öffnet es mit dem Inhalt. – user3378165
Sie müssen vielleicht mehr von der DOM/viewmodel Struktur zeigen, damit wir Ihnen helfen können ... Es ist Es lohnt sich, darauf hinzuweisen, dass das eigentliche 'infoForm'-Element * immer * rendert. Die' mit'-Bindung fügt nur ihren inneren Inhalt hinzu oder entfernt sie. Sind Sie sicher, dass Sie 'selectedItem' korrekt setzen/löschen? – user3297291