Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 带有Ember路由器的多状态组件_Ember.js - Fatal编程技术网

Ember.js 带有Ember路由器的多状态组件

Ember.js 带有Ember路由器的多状态组件,ember.js,Ember.js,我正在编写一个Ember应用程序,它由一些复杂的、有状态的组件组成。我很难理解余烬是如何处理这种应用程序的,因为它不是传统的CRUD应用程序 它是一个高度交互式的单页应用程序。一些示例组件包括 Xmpp文本聊天, 多方音频, Xmpp共享白板,以及 弹出式通知 有一个全局状态(我可以看到通过路由器处理)设置用户上下文(我在音频/白板上与谁一起工作)。我不太明白的是,如果路由器在设置与音频和白板无关但仍有状态的聊天上下文时起什么作用。我无法想象路由器的URL字符串如何同时反映所有这些组件的状态 在

我正在编写一个Ember应用程序,它由一些复杂的、有状态的组件组成。我很难理解余烬是如何处理这种应用程序的,因为它不是传统的CRUD应用程序

它是一个高度交互式的单页应用程序。一些示例组件包括 Xmpp文本聊天, 多方音频, Xmpp共享白板,以及 弹出式通知

有一个全局状态(我可以看到通过路由器处理)设置用户上下文(我在音频/白板上与谁一起工作)。我不太明白的是,如果路由器在设置与音频和白板无关但仍有状态的聊天上下文时起什么作用。我无法想象路由器的URL字符串如何同时反映所有这些组件的状态

在这种情况下,我会完全不使用路由器吗?如果是,如何链接应用程序的视图/控制器?到目前为止,我一直在使用路由器的connectOutlets方法链接我的视图和控制器。如果不调用此方法,执行此绑定的另一种(结构化和有组织的)方法是什么

谢谢

好问题

  • 全局状态:使用路由器
  • 应用程序状态:在与应用程序组件关联的控制器单例中
作为一般规则,我建议使用路由器管理用户可以添加书签或使用浏览器前进/后退按钮与之交互的状态。只是猜测,但你的应用程序可能包括白板的id

聊天、音频和通知等组件通常独立于路由器存在并保持状态。在某些情况下,这些组件的行为可能会因路由的不同而有所不同(如聊天可能会绑定到特定的频道,具体取决于显示的白板),但聊天小部件本身的状态将作为属性存储在ChatController单例上

余烬指南尚未完成,但您可能会发现控制器指南的最后一节“存储应用程序属性”很有帮助

供参考最近在余烬中添加了一个新的,并且在余烬指南中已更新。