我正在构建我的第一个Ember应用程序,我正在使用Ember.Router从URL获取参数,设置正确的状态并连接几个(5)个出口。
让我感到困惑的是,当URL中的单个参数发生变化时,路由器日志会向我显示应用程序完全重新路由并重新实例化所有视图(搞乱转换等)。
示例:
GET /#/myapp/from/2012-01-01/to/2012-12-31
日志输出:
STATEMANAGER: Entering root ember.js:18
STATEMANAGER: Sending event 'navigateAway' to state root. ember.js:18
STATEMANAGER: Sending event 'unroutePath' to state root. ember.js:18
STATEMANAGER: Sending event 'routePath' to state root. ember.js:18
STATEMANAGER: Entering root.main ember.js:18
STATEMANAGER: Entering root.main.range ember.js:18
STATEMANAGER: Entering root.main.range.index ember.js:18
然后我改变了哈希(所以没有新请求)
/#/myapp/from/2012-06-01/to/2012-12-31
日志输出:
STATEMANAGER: Sending event 'navigateAway' to state root.main.range.index. ember.js:18
STATEMANAGER: Sending event 'unroutePath' to state root.main.range.index. ember.js:18
STATEMANAGER: Sending event 'unroutePath' to state root.main.range. ember.js:18
STATEMANAGER: Sending event 'unroutePath' to state root.main. ember.js:18
STATEMANAGER: Sending event 'unroutePath' to state root. ember.js:18
STATEMANAGER: Sending event 'routePath' to state root. ember.js:18
STATEMANAGER: Entering root.main ember.js:18
STATEMANAGER: Entering root.main.range ember.js:18
STATEMANAGER: Entering root.main.range.index ember.js:18
我在这里遗漏了什么,因为这看起来有点多余。不仅如此,我的应用程序中还有一个精美的转换图表,现在每次用户在浏览器中按back
或forward
时都会重新加载。