当我们首次使用Ember JS启动应用程序时会发生什么?

时间:2018-02-20 14:43:06

标签: javascript ember.js ember-data ember-cli ember-cli-pods

我是ember的新手,我已经度过了Ember JS Documentation一段时间,突然有两个问题。我甚至在互联网上浏览了几个小时,几乎找不到解决方案。所以,他们是:

问题1:

引用Ember文档,

  

首次启动应用时会输入应用。就像任何一样   其他路线,它默认会加载一个应用程序模板。

上面引号中的

application代表application route,当应用程序启动并呈现application.hbs时,根据文档加载router.js。申请路线在哪里?

问题2:

控件流中究竟在哪里加载localhost:4200文件?申请途径之前还是申请途径之后?

请求:

如果有人能帮助我完成Ember JS的全部流程(当用户输入DateTime时开始),我将感激不尽。

感谢。

2 个答案:

答案 0 :(得分:3)

我试着去试一下......但是我也对这些东西感到困惑。

  1. Ember解析器基于命名约定完成了大量工作。默认情况下 - 一个Ember安装已经创建了一些东西 - 但是在构建过程中或者在构建过程中的某个时间 - 它将创建可能隐含的控制器和路由,但是你没有'创造。例如......你的文件夹结构中没有application.js路线......但是Ember在幕后的神秘区域创建了它。这可能是因为您不需要考虑表面积 - 如果您没有明确使用它。就像那条'路线' - 它也会创建一个控制器。该路线已输入'在渲染模板之前 - 因为它需要定义像模型这样的东西 - 顺便说一下/只是在上设置的属性可能不存在(对你的知识)同名的控制器。 (See route lifecycle hooks)其他隐式路由是/ index / error / loading等 - 它们都在那里 - 对于每条路由 - 即使你看不到文件。如果要使用它们,则需要显式创建它们(使用CLI)。
  2. 我只能想象在你输入任何路线之前路由器已经装好了...否则,它不知道如何解决问题? - 陷阱...尝试创建一个应用程序路由 - 并实际添加它到路由器。事情会破裂。但光明的一面是你不必键入一条无论在哪里的路线?
  3. 我还不确定(还)还有什么细节 - 但我认为它是一个穿过小孔眼的线程,并根据模型和属性在每个范围内获取更多数据。
  4. 以下是一些可以咀嚼的事情:

    dockyard.com/blog/2016/09/14/understanding-ember-s-resolver

    EmberConf 2017: An Animated Guide to Ember Internals by Gavin Joyce

    另外,迈克·诺斯关于前端大师的课程详细介绍了这些内容。 https://frontendmasters.com/workshops/ember/ - 但你并不只是在学习Ember ......你正在学习像es2015一样的余烬 - 而且在那个区域里没有任何同情心

    如果你能够克服最初的谜团 - Ember非常有趣。 :)

答案 1 :(得分:1)

看起来你的主要问题在这里得到了解决,看看我是否能回答你的主要应用流程问题。

Ember运行了一系列步骤来启用您的应用程序:

  • 启用了应用程序(运行初始化程序)
  • 应用程序实例打开(运行实例初始化程序)
  • app instance加载router.js文件
  • 路由器加载应用程序路由/控制器
  • 路由器加载指定的路由/控制器(如果没有指定,则回退到index路由/控制器)

本页显示的图表(https://guides.emberjs.com/v3.0.0/getting-started/core-concepts/)中概述了其中一些内容,但我们可以对其进行改进以使事情更加清晰。如果您有时间/兴趣,我很乐意帮助您更新图片!