2017-10-10 2 views
0

Le plugin dit que vous pouvez utiliser 'node.depth' à partir de la balise pour déterminer le niveau d'étiquette qui a été cliqué (pays ou province). Je n'arrive pas à accéder à node.depth depuis la balise RichUI: treeview. Mon code fonctionne correctement lorsque la valeur 1 ou 2 est codée en dur dans onLabelClick. Mais quand je spécifie node.depth comme paramètre, rien n'est passé au javascript. Comment puis-je accéder à node.depth? Mon alerte dit que « le niveau est indéfini »Comment puis-je accéder à l'attribut node.depth dans la balise (Grails plugin) <RichUI: treeview>?

<richui:treeView id="tree" xml="${data}" 
onLabelClick="treeClickHandler(node.depth, id)" showRoot="false"/> 


function treeClickHandler(level, id){ 
    alert("level is " + level + " and id is " + id); 
    if (level == 1){ 
     postForCountryIdeas(id); 
    } 
    else{ 
     postForProvControls(id); 
    } 
} 

def index() { 
def countryList = Country.list() 
def writer = new StringWriter() 
def xml = new MarkupBuilder(writer) 
def writer2 = new StringWriter() 
def xml2 = new MarkupBuilder(writer2) 
xml2.mkp.xmlDeclaration(version: "1.0", encoding: "utf-8") 
xml2.countrys { 
    countryList.each{item-> 
     xml2.country(name:"${item.name}", id: item.id){ 
      item.provinces.each{ prov-> 
      province(name:"${prov.name}", id: prov.id) 
      } 
     } 
    } 
} 
[data: writer2.toString()] 
} 

Répondre

0

La solution était d'utiliser node.node.depth au lieu de node.depth selon les docs.