comment ajouter dynamiquement des observateurs des méthodes à une Ember.js objet
Donc je suis en train d'ajouter dynamiquement ces observateurs méthodes pour une Ember.js objet
holderStandoutCheckedChanged: (->
if @get("controller.parent.isLoaded")
@get("controller").toggleParentStandout(@get("standoutHolderChecked"))
).observes("standoutHolderChecked")
holderPaddingCheckedChanged: (->
if @get("controller.parent.isLoaded")
@get("controller").toggleParentPadding(@get("holderPaddingChecked"))
).observes("holderPaddingChecked")
holderMarginCheckedChanged: (->
if @get("controller.parent.isLoaded")
@get("controller").toggleParentMargin(@get("holderMarginChecked"))
).observes("holderMarginChecked")
J'ai ce code jusqu'à présent, mais l'élément.methodToCall fonction n'est pas appelée
methodsToDefine = [
{checkerName: "standoutHolderChecked", methodToCall: "toggleParentStandout"},
{checkerName: "holderPaddingChecked", methodToCall: "toggleParentPadding"},
{checkerName: "holderMarginChecked", methodToCall: "toggleParentMargin"}
]
add_this = { }
for item in methodsToDefine
add_this["#{item.checkerName}Changed"] = (->
if @get("controller.parent.isLoaded")
@get("controller")[item.methodToCall](@get(item.checkerName))
).observes(item.checkerName)
App.ColumnSetupView.reopen add_this
Quelqu'un peut me dire ce que je fais de mal ? Est-il une meilleure façon de le faire ? Devrais-je faire cela dans un mixin ? Si oui, veuillez
OriginalL'auteur Rick Moss | 2012-11-01
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas exactement à vos cas d'utilisation, mais comme vous l'avez dit, votre décrite problème pourrait être résolu avec un Mixin, voir http://jsfiddle.net/pangratz666/a3Usx/
JavaScript:
Exemple de cas d'utilisation:
Une autre mise en œuvre serait un mixin qui utilise un tableau
watchProperties
, qui est une liste de propriétés qui doivent être respectées, voir http://jsfiddle.net/pangratz666/bSF3Z/:JavaScript:
cela résout beaucoup de problèmes pour moi, merci. a été à essayer de comprendre comment observer
[email protected]
sans avoir à parcourir le tableau pour savoir ce qui a changé. cela me permet de faire une sorte de proxy qui permet dynamique de la forme des objets de champ de communiquer avec un regard très différents modèle.OriginalL'auteur pangratz