Javascript 如果在“新建”选项卡中打开,则EmberJS无法显示所有内容
如果我运行应用程序并单击图像,它将打开详细信息页面并正确显示所有内容。但是,当我复制链接并将其粘贴到新选项卡上,或者右键单击图像并在新选项卡中打开时,我看不到整个内容。你认为问题是什么?这是我的玩物。谢谢Javascript 如果在“新建”选项卡中打开,则EmberJS无法显示所有内容,javascript,jquery,ember.js,Javascript,Jquery,Ember.js,如果我运行应用程序并单击图像,它将打开详细信息页面并正确显示所有内容。但是,当我复制链接并将其粘贴到新选项卡上,或者右键单击图像并在新选项卡中打开时,我看不到整个内容。你认为问题是什么?这是我的玩物。谢谢 您没有实现细节(pic)路由的模型挂钩。因此,当您使用{{link to}}助手进行转换时,它会起作用,因为在那里您可以向下传递模型,但是如果直接进入细节路由,它就不起作用。您没有实现细节(pic)路由的模型挂钩。因此,当您使用{{link to}}助手进行转换时,它会起作用,因为在那里您可以
您没有实现细节(
pic
)路由的模型挂钩。因此,当您使用{{link to}}
助手进行转换时,它会起作用,因为在那里您可以向下传递模型,但是如果直接进入细节路由,它就不起作用。您没有实现细节(pic
)路由的模型挂钩。因此,当您使用{{link to}}
助手进行转换时,它会起作用,因为在那里您可以向下传递模型,但是如果直接深入输入细节路径,它就不起作用。基本上,概念是当我们通过传递对象id使用link to helper时调用模型挂钩,就像我使用下面的link to helper一样。若我们传递模型的完整对象,那个么模型钩子就会被忽略,就像你们传递的那个样。
当我们直接在浏览器中输入url时,模型钩子也被调用。所以问题是,当你们在浏览器中输入url时,你们的模型钩子并没有被调用,在模型钩子中你们并没有返回pic的模型。所以你们面临着这个问题。解决办法是
将中组件模板中的行{{{#链接到“pic”pic}
更改为该行
{{#link-to "pic" pic.id}}
现在,模型挂钩将在每次转换时调用
并以这种方式定义pic路线中的模型挂钩
model(params) {
this.store.findRecord('image', params.pic_id)
}
然后像这样改变你的路由器。
this.route('pic',{path:'/news/:pic_id'})
基本上,当我们通过传递对象的id来使用链接到助手时,模型钩子被调用,就像我使用下面的链接到助手一样。若我们传递模型的完整对象,那个么模型钩子就会被忽略,就像你们传递的那个样。
当我们直接在浏览器中输入url时,模型钩子也被调用。所以问题是,当你们在浏览器中输入url时,你们的模型钩子并没有被调用,在模型钩子中你们并没有返回pic的模型。所以你们面临着这个问题。解决办法是
将中组件模板中的行{{{#链接到“pic”pic}
更改为该行
{{#link-to "pic" pic.id}}
现在,模型挂钩将在每次转换时调用
并以这种方式定义pic路线中的模型挂钩
model(params) {
this.store.findRecord('image', params.pic_id)
}
并更改您的路由器,如代码>此。路由(“PIC”,{PATH:‘/News:PICHID’})< /代码>
< P>您应考虑此需求的En烬数据,如力士和AtETEK所说的。暂时我用服务解决了你的问题。。请看.< /P> < P>你应该考虑Enter数据,比如力士和AtEk。
暂时我用服务解决了你的问题。。请查看。pic路由从index.js获取数据。我应该如何实现它?@hbc这是一种反模式。要么使用服务,从
utils
静态导入,要么最好使用ember data
这样的数据框架来处理您的数据。您好@Lux,我正试图使用ember data从JSON api获取数据,但新的选项卡仍然不起作用。我创建了一个名为application.js的适配器,并从'ember data/adapters/jsonapi'编写了import JSONAPIAdapter;导出默认的JSONAPIAdapter.extend({model(params){return$.getJSON('JSONAPIurl',params.NewsUrl);}})代码>仍然没有任何更改。另外,我的index.js是从“Ember”导入Ember;导出默认的Ember.Route.extend({model(){return Ember.$.getJSON('JSON api URL');}})
我还应该做些什么才能正确使用余烬数据?你应该使用余烬数据
,所以不要使用ember.$.getJSON
,而是this.store.find
。我的模型叫做新闻列表,我写了返回这个.store.findAll('news-list')
到pic.js路径并返回Ember.$.getJSON('http://api.donanimhaber.com/api/v1/site/NewsSite?pageIndex=0&pageSize=15');
到index.js,我还将我的模型更改为导出默认DS.Store.extend({
并将DS.
放在所有attr()之前)。但现在,当我单击图片时,我看到的只是一个空白页。如果我将this.store.findAll写入chrome的devTool索引,则会显示:vendor.js:42201错误:找不到用于http://api.donanimhaber.com/api/v1/site/NewsSite?pageIndex=0&pageSize=15“
pic route从index.js获取数据。我应该如何实现它?@hbc这是一种反模式n、 要么使用服务,从utils
静态导入,要么最好使用像ember data
这样的数据框架来处理您的数据。再次您好@Lux,我正试图使用ember data从JSON api获取数据,但新的选项卡仍然不起作用。我创建了一个名为application.js的适配器,并从“emb”编写了import JSONAPIAdapterer data/adapters/json api';导出默认的JSONAPIAdapter.extend({model(params){return$.getJSON('json api URL',params.NewsUrl);}}}});
仍然没有任何更改。另外,我的index.js是从'Ember'导入Ember';导出默认的Ember.Route.extend({model(){return Ember.$.getJSON('json api URL');});
要正确使用余烬数据,我还应该做些什么?你应该使用余烬数据
,所以不要使用ember.$.getJSON
但是这个.store.find
。我的模型叫新闻列表,我写了返回这个.store.findAll('news-list');
到pic.js路径并返回余烬.$.getJSON>('http://api.donanimhaber.com/api/v1/site/NewsSite?pageIndex=0&pageSize=15“);
到index.js,我还将我的模型更改为导出默认的DS.Store.extend({
并将DS.
放在所有attr()之前)。但现在,当我单击图片时,我看到的只是一个空白页。如果我将this.store.findAll写入chrome的devTool索引,则会显示:vendor.js:42201错误:找不到用于http://api.donanimhaber.com/api/v1/site/NewsSite?pageIndex=0&pageSize=15“
它不起作用..当我照你说的做时,链接不起作用。请确保当你输入di时浏览器中的rect url比pic路由中的model hook调用的多,它返回model或obj