Więc staram się dynamicznie dodawać tych metod obserwacyjnych do obiektu ember.jsjak dynamicznie dodać metody obserwatora do obiektu ember.js
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")
Mam ten kod tak daleko, ale funkcję item.methodToCall nie nazywa się
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
Czy ktoś może mi powiedzieć, co robię źle? Czy jest lepszy sposób to zrobić? Czy powinienem to robić w mixin? Jeżeli tak, proszę
wow pangratz co za amazining odpowiedź dzięki dużo. –
rozwiązuje to dla mnie wiele problemów, dziękuję. próbował dowiedzieć się, jak obserwować 'fields. @ each.value', bez konieczności przechodzenia przez tablicę, aby dowiedzieć się, co się zmieniło. to pozwala mi robić rodzaj proxy, który pozwala dynamicznym obiektom pola formularza komunikować się z bardzo odmiennym modelem. – jrode