Как переносить эту функцию на использование синтаксиса класса coffeescript?Функция преобразования coffeescript в класс
App.PurchaseOrder = (uid) ->
binder = new App.DataBinder(uid, "purchase-order")
# Abstract all this out
purchase_order =
attributes: {}
# The attribute setter publish changes using the DataBinder PubSub
set: (attr_name, val) ->
@attributes[attr_name] = val
binder.trigger uid + ":change", [
attr_name
val
this
]
return
get: (attr_name) ->
@attributes[attr_name]
_binder: binder
# Subscribe to the PubSub
binder.on uid + ":change", (evt, attr_name, new_val, initiator) ->
purchase_order.set attr_name, new_val if initiator isnt purchase_order
return
purchase_order
Что-то вдоль линий это, однако, это не будет работать, потому что @attributes не определен в binder.on в конструкторе.
class App.PurchaseOrder
constructor: (@id) ->
@binder = new App.DataBinder(@id, "purchase-order")
@attributes = {}
# Subscribe to the PubSub
@binder.on @id + ":change", (evt, attr_name, new_val, initiator) ->
@attributes.set attr_name, new_val if initiator isnt @attributes
return
# The attribute setter publish changes using the DataBinder PubSub
set: (attr_name, val) ->
@attributes[attr_name] = val
@binder.trigger @id + ":change", [
attr_name
val
this
]
return
get: (attr_name) ->
@attributes[attr_name]
Просто любопытно - что цель здесь. Вопрос немного выходит за рамки «вашего» вопроса, но мне любопытно - для учебных целей - что вы здесь делаете. –
У меня есть приложение rails, которое я пытаюсь увеличить классы ruby с помощью классов js без использования рамки на стороне клиента. В этом случае я устанавливаю соглашение о том, что модель заказа на покупку на стороне клиента будет автоматически привязана к элементам html, которые имеют конкретные атрибуты данных. Поэтому, если у меня есть страница с
Это WIP, но вы можете проверить исходный код здесь: https://github.com/mfpiccolo/happy_place_demo. и демо здесь: http://happy-place-demo.herokuapp.com/purchase_orders. Введя идентификатор в поле ввода, вы можете напрямую редактировать таблицу. – mpiccolo