2012-06-13 90 views
0

我應該從說我是一個完整的Ember.js noob(和一般的MVC JavaScript框架noob)開始。使用Ember.js對路由和狀態進行故障診斷

我想弄清楚如何路由器和StateManager一起工作。我拼湊從上interwebs各個地方一個例子,你可以在這裏查看:

http://jsfiddle.net/zdfs/qsAxZ/1/

所以第一次加載的一切似乎像它的工作。但是有些功能似乎沒有正常工作。我希望通過操作鏈接附加的CSS類實際上成爲應用程序狀態的一部分,但是我有一些東西弄亂了。

您可以通過單擊「webcam」或「screensharing」來複制問題。該鏈接將突出顯示。當我重新加載頁面時,狀態是正確的,但突出顯示丟失。我正在做一些不正確的事情,但我不知道如何解決它。

如果我嘗試將動作移入StateManager,則router.get("applicationController")引用將丟失。

我也不能做類似sManager.send("goHome");的東西 - 發生問題。

回答

0

閱讀你的代碼後,一些言論:

  • 有你爲什麼拆分路由器&一個StateManager之間代碼中的原因是什麼?在目前的規範形式中,你的狀態應該是位於路由器內部的類Ember.State
  • connectOutlet方法應該從connectOutlets狀態的掛鉤中調用,而不是enter之一。
  • 路由器中的事件處理程序使路由器例如在第一個參數,而不是一個狀態(參見goHomeviewWebcam & viewScreen
+0

感謝您的意見。我真的不知道我在做什麼,很多這些都是從各種例子拼湊而成的。 –

+0

你能詳細解釋第2項子彈嗎?不太確定你的意思。 –

+0

沒關係。我想我找到了子彈#2。更新小提琴,讓我知道你還看到什麼:http://jsfiddle.net/zdfs/qsAxZ/5/ –

相關問題