作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很困惑 Controller 、模型和路由器如何在 ember 中协同工作?是否可以通过例子来证明这一点?
路由中定义的模型是什么,它与模型“app/models/someModel.js”有什么关系?
app/routes/someRoute.js:
export default Ember.Route.extend({
model: function() {
return something;
}
谢谢
最佳答案
Ember 致力于命名约定。路由器将其模型函数返回的值设置到 Controller 的属性model
中。因此,如果您在 Controller 中编写 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.
});
}
});
关于ember.js - Controller 、模型和路由器如何在 ember 中协同工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32133231/
我是一名优秀的程序员,十分优秀!