我是 emberjs 的新手,我想知道 emberjs 中的请求流程。有一些与 emberjs 相关的查询:
控制器在 emberjs 中的具体作用是什么,无论我在哪里看到我们都可以在模板中创建操作。
控制器、路由和视图之间有标准的命名约定和关联,但是如何关联控制器、路由和视图。
请求处理时如何进行流控?
- a 将切换控制路由到控制器或
- 控制器将控制权移交给路由。
如果我们想手动关联控制器和路由,那么如何关联。
我是 emberjs 的新手,我想知道 emberjs 中的请求流程。有一些与 emberjs 相关的查询:
控制器在 emberjs 中的具体作用是什么,无论我在哪里看到我们都可以在模板中创建操作。
控制器、路由和视图之间有标准的命名约定和关联,但是如何关联控制器、路由和视图。
请求处理时如何进行流控?
如果我们想手动关联控制器和路由,那么如何关联。
控制器在 emberjs 中的具体作用是什么,无论我在哪里看到我们都可以在模板中创建操作。
控制器正在将您的模型与 MVC 模式中的视图连接起来。在 Ember.JS 中,您可以使用控制器来保留将在特定模块上使用的逻辑、管理依赖项或存储条件。在模板中,您只能使用简单的条件(没有和/或),所以当您需要一些更复杂的条件时,您应该放入控制器内部。例如
App.PersonController = Ember.ObjectController.extend({
isPersonRich: function() {
return @get('person.money') > 1000000 && @get('person.isReal')
}.property('person.money', 'person.isReal')
});
所以我不是虚构的并且拥有更多 1 000 000 资产的人是富有的。
{{#if isPersonRich}}
<p>This person is rich!</p>
{{/if}}
控制器、路由和视图之间有标准的命名约定和关联,但是如何关联控制器、路由和视图。
Route 通常从您的后端获取数据。
App.PersonRoute = Ember.Route.extend({
model: function(params) {
this.store.find('person', params.person_id);
}
});
每次当你进入persons
路线时,ember 都会调用你的 api(在这种情况下使用 ember 数据)来查找给定的人。此外,它会在这种情况下显示加载路线,并在失败后为您提供一些回退。
PersonView
将是您可以放置将在模板成功呈现后执行的 jQuery 代码的地方。
App.PersonView = Ember.View.extend({
didInsertElement: function() {
this.$().find('*[data-toggle=tooltip]').tooltip();
}
});
在此示例中,我将引导工具提示添加到模板。
请求处理时如何进行流控?
路由在控制器之前处理,您甚至setupController
在每个路由中都有方法,默认情况下将模型设置为控制器。
如果我们想手动关联控制器和路由,那么如何关联。
您可以覆盖setupController
方法并最终覆盖renderTemplate
. 没有什么可做的了。我建议您遵守 ember 名称约定。
另外看一下,如果您的控制器不打算处理已触发的事件action
,它将传播到您的路线。