Я запускаю приложение AngularJS, которое включает Pusher для обновления моделей в режиме реального времени. Я хотел бы вызвать действие в области, когда толкатель отправляет обновленные данные для ресурса AngularJS в заводское определение.
У меня есть ресурс определяется следующим образом:
TS.app.factory "Object", ($resource) ->
Object = $resource("objects/:publicToken", {publicToken: "@public_token"}, {update: {method: "PUT"}})
# Checks for updates to object data via Pusher.
Object::watch = ->
channelName = "private-12345"
# See if we've already subscribed to this channel.
channel = Namespace.pusher.channel(channelName)
# If not, subscribe.
channel ||= Namespace.pusher.subscribe(channelName)
# Update data if we get new info from pusher.
channel.bind "updated info", (data) =>
# THIS GETS RUN WHEN PUSHER SENDS UPDATED DATA.
for key, value of data
this[key] = value
# TRIGGER ACTION HERE
Я хотел бы установить переменные в рамках этого ресурса здесь. Я знаю, что для таких методов, как $ get, область автоматически обновится, но я не знаю, как это сделать в этой ситуации. Как я могу получить доступ к этой области?
Если есть другие, более эффективные (или более Угловые) способы сделать это, что это такое?
В своем первом предложении, вы имели в виду контроллеры вместо моделей? –
Я думаю, что это было бы разумным решением, если бы у меня был только один объект, но на самом деле я получил около 100-200 из них. Будет тест, но я предполагаю, что это ухудшит производительность. –