Vì vậy, tôi đang cố gắng để tự động thêm những phương pháp quan sát viên đến một đối tượng Ember.jslàm thế nào để tự động thêm các phương pháp quan sát viên đến một đối tượng 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")
tôi có mã này cho đến nay nhưng chức năng item.methodToCall không được gọi là
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
Bất cứ ai có thể cho tôi biết tôi đang làm gì sai? Có cách nào tốt hơn để làm điều này ? Tôi có nên làm điều này trong một mixin? Nếu vậy hãy
wow pangratz gì một amazining câu trả lời nhờ rất nhiều. –
điều này giải quyết rất nhiều vấn đề cho tôi, cảm ơn. đã cố gắng tìm ra cách quan sát các trường '@ each.value' mà không cần phải lặp qua mảng để tìm hiểu những gì đã thay đổi. điều này cho phép tôi thực hiện một loại proxy cho phép các đối tượng trường dạng động có thể giao tiếp với một mô hình rất khác nhau. – jrode