2012-10-09 2 views
2

Voici une description de ce qui se passe.Le clic est déclenché pendant foreach, mais pas après que le rendu soit terminé

Ce n'est pas l'action que je cherche.

Je veux tellement que, après la table soit rendue et qu'un utilisateur clique sur le tr l'information doit être affichée ...

info ne doit pas être appelé pendant le rendu.

Quelqu'un sait ce que je fais mal?

EDIT http://jsfiddle.net/yG6Tg/2/

+0

'Erreur non capturée: impossible d'analyser les liaisons. Message: TypeError: L'objet # ne possède pas de méthode 'showInfo'; Valeur des liaisons: attr: {code: code}, cliquez sur: $ parent.showInfo ($ data) knockout-2.1.0.js: 48' – Musa

+0

Désolé, je n'ai pas sauvegardé jsfiddle correctement, il a été corrigé destiné à poster, le problème persiste – Zholen

Répondre

14

de Nevermind I figured it out.

Depuis que j'avais:

<tbody data-bind="foreach: venue"> 
    <tr data-bind="click:$parent.info($data)"> 

Il appelait automatiquement cet événement. Je réalise maintenant que je n'ai pas besoin de passer les données manuellement car 'ceci' sera lié aux données avec la fonction elle-même. La solution suivante est la suivante:

<tbody data-bind="foreach: venue"> 
     <tr data-bind="click:$parent.info"> 

info = function() {alert(this.name);} 
+1

De même '$ data' est passé comme premier paramètre. C'est la manière soutenue d'y arriver. 'info = fonction (données) {alert (data.name);}' –

Questions connexes