2013-06-12 2 views
1

J'ai une liste déroulante dans un formulaire dont les valeurs doivent être passées à une grille en cliquant sur le bouton de sauvegarde. J'utilise kendo ui et je suis js knock-outimpossible d'analyser les liaisons knockout js pour la liste déroulante

de fixation dans le modèle de vue que:

JS

this.blahList = ko.observableArray(["1", "1", "p3","c3ai"]); 
    this.blah = ko.observable(); 

this is my add function: 

    this.addBorrower = function() { 
         this.borrowers.push(new Borrower({ name: this.newName(), address: this.newAddress() , blah: this.newBlah()})); 

         }; 

HTML

<li> 
blah : 
<input data-bind="kendoDropDownList: { data: blahList, value: newBlah}" /> 
</li> 

il montre une erreur

erreur

Uncaught Error: Unable to parse bindings. 
Message: ReferenceError: newBlah is not defined; 
Bindings value: kendoDropDownList: { data: blahList, value: newBlah} 

Uncaught TypeError: Object #<AppViewModel> has no method 'newBlah' 

Quelqu'un peut-il m'aider?

+0

Est-ce que newBlah() est associé à this.blah? – nocturns2

+0

blah = this.newBlah(). Je ne suis pas sûr de la syntaxe. mais il fonctionne pour les entrées de texte .. ne fonctionne pas pour la liste déroulante – user1234

+0

vous ne déclarez pas newBlah n'importe où dans le code ci-dessus – Anders

Répondre

4

Le kendoDropDownList liaison tente d'écrire la valeur dans le menu déroulant à une propriété nommée « newBlah » qui devrait être sur votre modèle de vue, mais pas.

Changez votre modèle de vue de

this.blahList = ko.observableArray(["1", "1", "p3","c3ai"]); 
this.newBlah = ko.observable(); //this is where the value will be stored 

En d'autres termes, pour la liaison kendoDropDownList, les propriétés que vous attribuez à des « données » et « valeur » doit exister sur votre modèle de vue. Dans ce cas, "blahList" et "newBlah" doivent exister sur votre modèle de vue.

+0

merci. la liste déroulante fonctionne mais la valeur n'est pas remplie dans la grille. – user1234

+0

Oui, c'est ce que je viens d'expliquer. La valeur de votre liste déroulante n'est définie nulle part quand elle change, parce que vous devez changer this.blah à this.newBlah. –

+0

merci @ryan rahlf – user1234

Questions connexes