Créer un formulaire dynamique avec KnockOut
Bonjour,
Je dois créer un formulaire dynamique et pour ce la je me suis dis que j'allais utiliser knockout afin de simplifier mon problème mais je n'arrive pas a créer le viewModel adéquat
J'ai plusieurs problème que l'on peut voir sur mon schéma :
Le viewModel de 1er niveau, c'est ok je vois comment faire.
Ramener les paramètres de base en fonction du choix de type dans la dropdownlist c'est Ok
Par contre les mapper c'est une autre paire de manche
Coté serveur les paramètre remontés ressemble à ça
Code:
1 2 3 4 5 6 7 8 9
| Class Parameter
{
id
Keyname
ParemeterValue
ParemeterTypeId
IsTypedParmeter
IsMultipleParemeter
} |
http://img4.hostingpics.net/thumbs/m...ynamicForm.jpg
Javascript
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
<script type="text/javascript">
var RuleViewModel = function () {
//Make the self as 'this' reference
var self = this;
//Les propriétés déclarées sur la page (avec leurs valeurs par défaut)
self.id = ko.observable(0);
self.Name = ko.observable("");
self.Description = ko.observable("");
self.ParemeterTypeId = ko.observable(0);
self.Parameters = ko.observableArray(function() {
$.ajax({
type: 'Get',
url: '@Url.Action("GetParameters")',
data: {
self.Type
},
success: function(data) {
//La liste de résultat
}));
},
dataType: 'json'
});
});
// Operations
self.addParameter = function () {
self.parameters.push(new Parameter())
};
self.removeParameter = function (parameter) {
self.parameters.remove(parameter)
};
};
ko.applyBindings(new ExplorationRuleViewModel());
</script> |
Un petit coup de main ?