我很困惑控制器,型号和路由器如何在余烬中协同工作?是否有可能通过实例证明这一点?
这个模型在路线中定义的是什么,它与这个模型的关系&app; models / models / someModel.js'?
应用程序/路由/ someRoute.js:
export default Ember.Route.extend({
model: function() {
return something;
}
由于
答案 0 :(得分:1)
Ember致力于命名约定。路由器将其模型函数返回的值设置为控制器的属性model
。因此,如果您在控制器中编写this.get('model')
,您将通过路由器的模型函数看到返回的值。
此外,如果您想让路线的模型采用特定形式,您需要将其映射到已定义的对象。
App.SomeModel = Ember.Object.extend({
firstName : '',
lastName : '',
fullName: function () {
return this.get('firstName' + " " + this.get('lastName');
}.property('firstName', 'lastName'),
birthdate: function () {
return moment(this.get('birth_date').format('MMMM Do YYYY');
}.property('birth_date')
});
现在假设来自后端的数据采用以下格式:
{
"firstName" : "PQR",
"lastName" : "KLM",
"birth_date" : "15 Oct 1992"
}
所以路由器将是
App.SomeRoute = Ember.Route.extend({
model : function () {
var promise = $.get('person.json');
return promise.then(function (response) {
return App.SomeModel.create(response); //Here response will be the JSON above.
});
}
});