使用Ember数据重新加载模型
Model reloading with Ember Data
我正在尝试使用文档化的model.reload()函数轮询更多数据
App.ModelViewRoute = Ember.Route.extend({
actions: {
reload: function() {
this.get('model').reload();
}
}
});
但我收到一条错误消息说。。。
undefined is not a function TypeError: undefined is not a function
有更好的方法吗?我似乎无法从路线上以这种方式访问模型?
这是路由器
App.Router.map(function() {
this.route('video', { path: '/videos/:video_id' });
});
这是的路线
App.VideoRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('video', params.video_id);
},
actions: {
reloadModel: function() {
// PROBLEM HERE
// this.get('model').reload();
Ember.Logger.log('reload called!');
}
}
});
这是型号
App.Video = DS.Model.extend({
title: DS.attr('string'),
status: DS.attr('string')
});
和模板
<script type="text/x-handlebars" data-template-name="application">
<h1>Testing model reloading</h1>
{{#link-to "video" 1}}view problem{{/link-to}}
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="video">
<h1>Video</h1>
<h2>{{title}}</h2>
{{model.status}}
<p><button {{action 'reloadModel'}}>Reload model</button></p>
</script>
我在这里对这个问题做了一个jsbin:
http://jsbin.com/wofaj/13/edit?html,js,输出
我真的不明白为什么重新加载会给我这个错误。任何建议都将不胜感激。
感谢
由于model
已经作为钩子存在于Ember.Route上,因此无法将其作为属性获取。
相反,您可以执行以下操作:
this.modelFor('video').reload();
从技术上讲,你也可以做this.get('currentModel').reload();
,但这是未记录的,将来可能无法使用。
路线的refresh
方法将执行之后的操作
App.VideoRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('video', params.video_id);
},
actions: {
reloadModel: function() {
this.refresh()
}
}
});
API文档
路由模型函数提供了一个钩子来加载控制器数据。余烬指南中有一个特定的部分。
1) 如果你想访问你的内容,它会像:
reload: function() {
this.controller.get('content');
}
2) reload是成员数据对象可用的方法。在您的示例中,您正在加载一个js对象({id:2,title:"Test video title 2",status:"downloading"})。
相关文章:
- 延迟 AngularJS 路由更改,直到加载模型以防止闪烁
- 加载模型与三个.js
- Three.js隐藏已加载模型的对象
- Javascript客户端从ASP.NET MVC后端延迟加载模型
- 如何在三.js中加载 .x 模型
- 如何将内置选项卡与没有路由的 ember 集成,以便为每个选项卡异步加载模型
- 三.js 加载模型时进度加载器不隐藏
- Angularjs:如何在惰性模式下加载模型
- WebGL显示不带矩阵的加载模型
- 单击时重新加载模型
- Ember 2.0路由器不加载模型数据
- 转换到路线后重新加载模型
- 在three.js中加载模型的最简单方法
- 在AngularJS中加载模型并渲染内容后执行函数
- 下划线模板不加载模型.% console.log(Model.id) %>它是未定义的
- 如何在主干视图中加载模型集合
- 从MEAN.IO中的其他包加载模型
- MVC淘汰.儿童下载列表没有't第一时间加载模型数据
- 在模态中加载模型只工作一次
- 烬路线在错误加载模型后卡住