1
我正在運行一個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這樣的方法,範圍會自動更新,但在這種情況下我不知道該怎麼做。我怎樣才能在這裏訪問範圍?
如果還有其他更好的(或更多的Angular-y)方法來做到這一點,它們是什麼?
在你的第一句話,你的意思是控制器,而不是模型? – 2013-04-30 21:06:36
我認爲如果我只有一個對象,這將是一個合理的解決方案,但實際上我已經得到了大約100-200個。將測試,但我猜測這會惡化性能。 – 2013-04-30 22:04:00