Est-il possible d'utiliser la fonction de Guidon #si?
J'ai un objet contrôleur qui est comme:
MyApp.objController = Ember.ArrayController.create({
init: function(data) {
data.isValid = function() {
return (data.validity === "valid");
}
this.pushObject(MyApp.MyObj.create(data));
}
});
Mon point de vue, c'est comme:
{{#each MyApp.objController}}
{{#if isValid}}
<some markup>
{{else}}
<some other markup>
{{/if}}
{{/each}}
J'étais en supposant que le if
conditionnelle au Guidon accepte à la fois les valeurs et les fonctions, mais cela ne semble pas être le cas. Est-il réellement possible, et je suis juste de faire le mal?
OriginalL'auteur Jay | 2012-06-29
Vous devez vous connecter pour publier un commentaire.
Si vous définissez votre
isValid
comme unproperty
, vous pouvez l'utiliser dans votreif
instruction sans la création d'une coutume Guidon helper, voir http://jsfiddle.net/pangratz666/Dq6ZY/:Guidon:
JavaScript:
computed
propriétéOriginalL'auteur pangratz
Guidon si les déclarations compare uniquement si une valeur existe, s'il est une falsy valeur (c'est à dire inexistant, 0, une chaîne vide, etc.). Vous devez écrire une coutume fonction d'assistance.
Vous pourriez le faire de cette
Il enregistre un bloc helper. Si la valeur que vous passez dans évalue à "valide", il renvoie le modèle suivant l'assistance avec les données actuelles. Si il n'évalue pas valide, il renvoie le modèle en suivant l'instruction else avec les données actuelles.
Puis dans votre modèle, vous pouvez l'utiliser comme ceci
Sinon, si vous voulez respecter l'esprit du Guidon et de faire une "logique" de modèle, définir un indicateur avant de vous le rendre le modèle indiquant si oui ou non que les données sont valides, puis utilisez le guidon si helper avec le drapeau.
Vous pourriez également possible de mettre en place une fonction générique pour traiter ce cas comme dans d'autres. Voir ma réponse dans Opérateur logique dans un handlebars.js {{#if}} conditionnel pour un exemple pour un médicament générique si (similaire à la réponse ci-dessus)
Se terminant en
{{/if}}
ne fonctionne pas pour moi, mais se terminant en{{/isValid}}
fait. Vous ne savez pas si c'est parce que c'est de 2,5 ans plus tard, ou quoi, mais juste envie de le jeter là-bas.Oui, c'est une faute de frappe. Corrigés.
OriginalL'auteur Nick Kitto
Vous pourriez créer un Guidon de l'aide pour ce faire.
OriginalL'auteur frontendbeauty
Essayez ceci:
ici est fonction d'aide pour WhatIsTheSiteFor:
Voici la démo: http://www.gbin1.com/gb/networks/uploads/71bb1c1e-0cd3-4990-a177-35ce2612ce81/demo6.html
OriginalL'auteur user1944832