wie Sie dynamisch hinzufügen Beobachter Methoden, um eine Ember.js Objekt

So, ich bin versucht, um dynamisch hinzufügen, diese Beobachter Methoden, um eine Ember.js Objekt

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")

Habe ich diesen code so weit, aber das Element.methodToCall Funktion nicht immer aufgerufen

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

Kann mir jemand sagen was ich falsch mache ? Gibt es einen besseren Weg, dies zu tun ? Sollte ich dies tun in einer mixin ? Wenn ja, bitte

InformationsquelleAutor Rick Moss | 2012-11-01
Schreibe einen Kommentar