cela semble si simple mais je suis incapable de le faire.
J’ai limité une liste déroulante avec les données Json de c #.
Voir page
Appel json
Knockout Model
var baseModel = { VehicleTypeId: null, VehicleTypes: [], } var viewModel = ko.mapping.fromJS(baseModel); $.get(urlPath + "/GetVehicleTypes", function (data) { viewModel.VehicleTypes(data); });
Il remplit la liste déroulante et lorsque je sélectionne une valeur dans la liste déroulante, la valeur est mise à jour pour VehicleTypeId.
Mon problème est que je veux définir une valeur par défaut pour ma liste déroulante, je l’ai googlé mais rien ne fonctionne pour moi
Les données que je reçois dans Json sont les suivantes.
[{ "ID": 32, "Name": "Vehicle 1" }, { "ID": 30, "Name": "Vehicle 2" }, { "ID": 31, "Name": "Vehicle 3" }]
Vos VehicleTypes doivent figurer dans un tableau observable et assurez-vous de bien appliquer vos liaisons:
var baseModel = { // data VehicleTypeId: ko.observable(null), VehicleTypes: ko.observableArray([{ "ID": 32, "Name": "Vehicle 1" }, { "ID": 30, "Name": "Vehicle 2" }, { "ID": 31, "Name": "Vehicle 3" }]), } ko.applyBindings(baseModel);
Vous devrez atsortingbuer une valeur à VehicleTypeId afin que la valeur par défaut soit définie.
Voici un exemple de travail.
function VehicleTypesViewModel(){ var self = this; self.VehicleTypeId = null; self.VehicleTypes = []; } var viewModel = new VehicleTypesViewModel(); $.get(urlPath + "/GetVehicleTypes", function (data) { viewModel.VehicleTypeId = 32; viewModel.VehicleTypes = data; ko.applyBindings(viewModel); });