【发布时间】:2016-12-23 03:39:47
【问题描述】:
TL;DR Embers 组件只是智能的 HTML 模板。为什么他们不像 Angular 那样为自己获取数据?以及如何在更多 URL/页面上共享路由模型。似乎我必须知道哪些组件放置在哪个 URL 上,并且我必须使它们成为可通过路由模型使用的数据。为什么这部分不在组件中?
我现在正在学习 Ember.js。我至少试试。 目前,我很难理解 Ember.js 的行为为何如此。如果我对某些陈述有误,请纠正我。我是 Ember.js 初学者。所以也许我在这里指出的不是正确的。
假设我们在 / 上有一个请求,然后 Ember 尝试在 app/routes/index.js 中找到一个路由模型,此文件包含我想从后端获取的数据的代码。接下来 Ember 将在这个文件中渲染 app/templates/index.hbs 我有一个名为 car-list 的组件。
目前没有问题,但让我们仔细看看。对我来说,一开始必须自己获取数据感觉很奇怪,为什么组件不自己做呢?下一个问题是如何在更多路由之间共享模型获取逻辑?也许我想将我的组件放在许多 URL/页面/路由上,然后我必须复制路由模型逻辑?
在我看来,组件应该自己获取数据,您可以轻松地将组件插入其他页面,而无需复制整个路由模型获取逻辑。
所以我必须知道哪些组件放置在哪个 URL 上,并且我必须使它们成为可通过路由模型使用的数据。为什么这部分不在组件中?
所以也许我只是对 Ember 不够好,我只是忽略了一些东西?
【问题讨论】:
-
在我阅读了所有官方指南之后,这个问题出现了。这个问题是结果,因为我知道约定和概念。如果我错了,请纠正我。在我阅读了 Stack 旁边的很多其他文章之后,我可以留下这个问题是有争议的。 Ember 社区中的一些人认为组件不应该依赖于路由,应该独立工作,其他人则说遵循 Embers 约定并将其放置在路由中。
标签: javascript angularjs ember.js