我在閱讀關於將事件邏輯放置在控制器或路徑中的討論後開始思考這個問題。你應該在哪裏處理(某些)事件? https://github.com/emberjs/ember.js/pull/1209控制器應該採用什麼邏輯以及路由應該採取什麼措施?
一般來說,什麼是在控制器或路線中放置東西的約定/規則?
我在閱讀關於將事件邏輯放置在控制器或路徑中的討論後開始思考這個問題。你應該在哪裏處理(某些)事件? https://github.com/emberjs/ember.js/pull/1209控制器應該採用什麼邏輯以及路由應該採取什麼措施?
一般來說,什麼是在控制器或路線中放置東西的約定/規則?
我喜歡把它當作不知道什麼情況下,你需要在動作的動作泡在以下方式下:
控制器 - >當前路由 - >父路由 - >應用路線。
所以一般來說,如果你只能看到你在控制器上下文中使用的動作,那麼它可能屬於那裏。如果路由涉及多個控制器(就像在模板中使用「渲染」一樣),則該動作屬於該路線。如果多個路線可以調用一個動作,那麼該動作屬於父動作。
在實踐中,這通常看起來像寫在控制器上,然後當你意識到這是必要時將它們移動到路線。
一些Ember開發者喜歡也使用動作的本質來確定事物的發展方向(儘管我認爲這是一個非常模糊的方法)。
例如根據這一學派:
這一行爲是否具有路由做(也許有一些由「transitionTo」結尾),那麼它所屬的路由器。如果它不處理路由(比如只選擇一個項目),則它屬於控制器。
重要的是要挑選一種啓發式,並與其保持一致,以便您/其他開發人員能夠找到這些操作。
非常感謝!我還發現了這樣的邏輯,即如果它轉換,它應該在一條路線中,否則在控制器中有點模糊。你的方法對我很有意義,謝謝! – Dennis