Frage

Ich bin verwirrt darüber, wann und wo ich bei Verwendung des Mapping -Plugins mein ViewModel deklarieren soll.

Hier ist meine JSON -Datei:

{
    "members": [
        {
            "memberid": "001",
            "membername": "Jason"
        },
       {
            "memberid": "002",
            "membername": "Bob"
        }
    ]
}

Hier ist die HTML -Vorlage:

<div data-bind="foreach: members">
<h3 data-bind="text: memberid"></h3>
<p>Name: <span data-bind="text: membername"></span></p>  
</div>

Hier ist der Rest:

var data = $.getJSON("members.json",function(data)  
            {
                var viewModel = ko.mapping.fromJSON(data);
                 ko.applyBindings(viewModel);

            }
        );

ko.mapping.fromJSON(data, viewModel);

Vielen Dank im Voraus für Ihre Hilfe!

War es hilfreich?

Lösung

Sie möchten wahrscheinlich Ihr ViewModel außerhalb der Schließung deklarieren, daher ist es zugänglicher. Zum Beispiel:

var viewModel = {};
var data = $.getJSON("members.json",function(data)  
            {
                viewModel.model = ko.mapping.fromJSON(data);
                 ko.applyBindings(viewModel);
            }
        );

Dies würde das ViewModel erstellen, es zugänglich machen und die Modelleigenschaft freilegen (die alle zugeordneten Daten enthalten würde). Sie können die Modelleigenschaft überspringen und es auch auf der VM machen. Sie könnten sogar die Antragsbindungen außerhalb davon bewegen, da Sie wirklich nur möchten, dass das einmal läuft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top