ember.js-ember cli:ember数据在子视图中不可用
我正在使用最新的ember cli并正在测试它,使用ember数据和http mock for RESTAdapter创建非常简单的应用程序-ember生成http mock api服务器 从API获取单个post: 结果 以下是所有相关代码: 适配器 模型 路由器.js 路由帖子和帖子-视图和子视图 邮路 邮路 模板 博思商学院 后哈佛商学院 问题是:如果查看下面的屏幕盖,在chrome ember调试器中,单个post模型连接到post路由,但没有打印在post.hbs中 仅使用余烬初学者工具包,我完全没有问题,完全相同的应用程序 谢谢你的帮助,干杯 更新 下面是完全相同的Ember应用程序,它使用初学者工具包、xampp中的主机和用于RESTAPI的PHP Slim框架进行编码。工作很好ember.js-ember cli:ember数据在子视图中不可用,ember.js,ember-data,ember-cli,Ember.js,Ember Data,Ember Cli,我正在使用最新的ember cli并正在测试它,使用ember数据和http mock for RESTAdapter创建非常简单的应用程序-ember生成http mock api服务器 从API获取单个post: 结果 以下是所有相关代码: 适配器 模型 路由器.js 路由帖子和帖子-视图和子视图 邮路 邮路 模板 博思商学院 后哈佛商学院 问题是:如果查看下面的屏幕盖,在chrome ember调试器中,单个post模型连接到post路由,但没有打印在post.hbs中 仅使用余烬初学者工
尝试修复数据,因为post嵌套在post中,请尝试以下操作:
{"post":[
{
"id":1,
"title":"How to write a JavaScript Framework",
"author":"Tomhuda Katzdale",
"body":"Lorem ipsum dolor sit amet"
}]
}
如果数据可见,请在您的帖子hbs中进行检查,然后帖子应该可以正常运行在浏览了Ember.js论坛后,我在那里得到了答案- 似乎在使用Ember generate controller命令时,最终得到的是Ember.controller,而不是Ember.ObjectController或Ember.ArrayController lol 我通过Ember generate controller命令从:generate编辑我的post控制器
export default Ember.Controller.extend({
});
到
现在这个模型是绑定的:D
<h2>Posts List</h2>
<ul>
{{#each}}
<li>
{{#link-to 'post' post}}{{title}}{{/link-to}} | {{author}} | {{body}}
</li>
{{/each}}
</ul>
{{outlet}}
1.希望这能解决问题,而不是使用“this”post
已经试过了。仍然不起作用。我不认为问题出在数据上,因为模型中有数据,如屏幕盖所示,右下角的子视图postgood,如果你能回答你自己的问题,那么人们可以使用它作为参考。谢谢如果需要将创建的控制器设置为对象类型,则需要提供如下正确选项:ember g controller name-type=Object,如果控制器类型为Object或Array,则只有ember会从路由器的模型挂钩中自动设置相应控制器的模型属性。谢谢-稍后将进行检查
import DS from 'ember-data';
export default DS.Model.extend({
title: DS.attr('string'),
author: DS.attr('string'),
body: DS.attr('string')
});
import Ember from 'ember';
var Router = Ember.Router.extend({
location: EmbercliDataENV.locationType
});
Router.map(function() {
this.route('application');
this.resource('posts', function() {
this.resource('post', { path: ':post_id' });
});
});
export default Router;
import Ember from 'ember';
export default Ember.Route.extend({
model: function() {
return this.store.find('post');
}
});
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
return this.store.find('post', params.post_id);
}
});
<h2>Posts List</h2>
<ul>
{{#each}}
<li>
{{#link-to 'post' this}}{{title}}{{/link-to}} | {{author}} | {{body}}
</li>
{{/each}}
</ul>
{{outlet}}
<h2>Single Post</h2>
<p>Post title: {{title}}</p>
<p>Post author: {{author}}</p>
<p>Post body: {{body}}</p>
{"post":[
{
"id":1,
"title":"How to write a JavaScript Framework",
"author":"Tomhuda Katzdale",
"body":"Lorem ipsum dolor sit amet"
}]
}
export default Ember.Controller.extend({
});
export default Ember.ObjectController.extend({
});
<h2>Posts List</h2>
<ul>
{{#each}}
<li>
{{#link-to 'post' post}}{{title}}{{/link-to}} | {{author}} | {{body}}
</li>
{{/each}}
</ul>
{{outlet}}