Comment passer des variables supplémentaires à souligne modèles
J'ai une épine dorsale de vue qui rend un résultat de recherche dans un trait de soulignement modèle. Comme je tiens à souligner le terme de recherche dans la suite, j'ai l'impression suivante de la méthode dans le modèle:
print(someKey.replace(searchTerm, '<b>' + searchTerm + '</b>')
Il fonctionne comme aspecté, mais je dois mettre la searchTerm
variable dans l'espace de noms global d'obtenir ce travail. Je me demande si il existe un moyen d'accéder à mon point de vue le modèle de la méthode d'impression, afin que je puisse l'écrire comme ceci:
print(someKey.replace(searchTerm, '<b>' + this.model.get('searchTerm') + '</b>')
Ou si je pouvais searchTerm comme une variable locale dans ma fonction rendu et y accéder dans mon template.
Ici est l'ensemble de l'épine Dorsale de la vue:
var searchTerm;
var SearchResultView = Backbone.View.extend({
initialize: function() {
this.model.bind('change:rows', this.render, this);
this.model.bind('change:searchTerm', this.clear, this)
},
template: _.template("<tr><td><% print(someKey.replace(searchTerm, '<b>' + searchTerm + '</b>')); %></td></tr>", this),
render: function() {
searchTerm = this.model.get('searchTerm')
_.each(this.model.get('rows'), function(row) {
this.el.append($(this.template(row.doc)));
}, this)
},
clear: function(){
this.el.empty();
}
});
OriginalL'auteur Andreas Köberle | 2012-01-10
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr que je comprends de votre question. Mais je fais quelque chose le long de ces lignes de passer plusieurs objets dans ma fonction de modèle.
Le jquery étendre la fonction me permet de fusionner deux objets en un seul. Donc, dans votre cas, vous pouvez fusionner vos "searchTerm" avec votre modèle lors de la création de modèles.
Votre autre option serait de passer l'ensemble de votre modèle dans votre fonction de modèle et effectuer votre trait de soulignement itération dans le modèle. Laissez-moi savoir si vous avez besoin de plus d'explication sur ce point.
EDIT:
Voici un lien vers jquery étendre
Et soulignent également a et étendre la méthode si vous n'êtes pas à l'aide de jquery
EDIT EDIT:
C'est juste pour vous donner un exemple de ma deuxième suggestion. Serait probablement besoin de quelques ajustements pour se jeter dans la vôtre, mais c'est l'idée.
Je suis d'accord que c'est une étrange situation. Vous êtes essentiellement en tirant "searchTerm" hors de votre modèle, le parcours d'une collection de votre modèle, puis de reliaison "searchTerm" pour chaque élément de la collection. Vous pouvez toujours lier l'ensemble de votre modèle pour le modèle, à la place de la décomposant. Puis enveloppez votre code html dans l' _.chacun() à l'intérieur de votre modèle. C'est juste une préférence. Bonne chance avec votre projet 😀
Pourriez-vous montrer votre dernière suggestion dans la réponse, s'il vous plaît.
OriginalL'auteur Mike