xlr8tn
24 Nov 2012, 7:57 AM
I am working with search results returned from an Endeca search engine. I created many xtemplates to handle the display for each record and one xtemplate that determines which subtemplate to apply. This is working fine, but I need to know how to store values that I will need further down in the template. A good example is "search terms" that I will need to use to highlight later in the process. I know I can create member functions to further process values, but when should I set the value?
terms: '',
setTerms: function(values) {
this.terms = values.terms;
},
getTerms: function() {
return this.terms;
}
1) Do I set via calls at the beginning of the template?
<tpl if="values.properties.terms">
[{ this.setTerms(values) }]
</tpl>
The problem I experienced with this is that the value was always one search behind. My second search would produce terms from my first search.
2) Do I set from within my controller prior to calling the template?
searchResultsTpl.setTerms(terms);
3) Do I just tack on to the data that I pass the template during apply? If so, when I am in the weeds of the search results "tpl for" loop, how do I get way back up to the terms value at the root in the JSON? I say there was a parent, but can I chain that all the way back up?
terms: '',
setTerms: function(values) {
this.terms = values.terms;
},
getTerms: function() {
return this.terms;
}
1) Do I set via calls at the beginning of the template?
<tpl if="values.properties.terms">
[{ this.setTerms(values) }]
</tpl>
The problem I experienced with this is that the value was always one search behind. My second search would produce terms from my first search.
2) Do I set from within my controller prior to calling the template?
searchResultsTpl.setTerms(terms);
3) Do I just tack on to the data that I pass the template during apply? If so, when I am in the weeds of the search results "tpl for" loop, how do I get way back up to the terms value at the root in the JSON? I say there was a parent, but can I chain that all the way back up?