EmberJS を使用しており、websocket (socket.io) を使用してバックエンドからデータを取得しようとしているので、このアプリケーション ルートを設定しました。
App.ApplicationRoute = Ember.Route.extend(
setupController: (controller, data) ->
store = @get 'store'
socket = io.connect "http://localhost:4000/orders" ## Line 4
socket.on "new_order", (order) ->
store.load(App.Order, order)
socket.on "new_billing", (bill) ->
store.load(App.Bill, bill)
socket.on "connected", ->
console.log "Ready"
model: ->
return { title: "Ordenes" }
actions:
markAsDone: (type, type_id) ->
# Send value to backend
socket.emit "confirm_" + type, ## Line 16
id: type_id
# Find record by id
if type == "order"
record = App.Order.find(type_id)
transition = "orders"
else if type == "bill"
record = App.Bill.find(type_id)
transition = "bills"
# Delete from store
record.then( (r) ->
r.deleteRecord()
)
# Display list of record type
@transitionTo(transition)
)
4行目で接続が設定され、「/」を押すとオブジェクトがフェッチされますが、ルートに入った後は「/orders」オブジェクトがフェッチされなくなり、上記のコードの16行目では使用できませんソケット変数
Uncaught ReferenceError: socket is not defined
これを管理するより良い方法はありますか?