我正在尝试使用Ember.JS构建一个小型搜索应用程序 - 这是我的代码片段:
应用/ adapter.js
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
host: 'http://c6403:2222',
namespace: 'server'
});
searializers / results.js
import DS from 'ember-data';
export default DS.JSONSerializer.extend({
});
尝试了
import DS from 'ember-data';
export default DS.RESTSerializer.extend({
normalizePayload: function(payload) {
return {
title: payload.title,
description: payload.description,
type: payload.type,
url: payload.url,
};
}
});
我的路由器/ index.js
export default Ember.Route.extend({
model: function (){
var searchText = 'searchText';
return this.store.query('result',{ searchText } ).then(function(results) {
alert(results);
return results;
});
},
actions:{
submitsearch: function(searchText) {
this.store.query('result',{ searchText } );
this.refresh();
}
}
});
model / results.js
import DS from 'ember-data';
export default DS.Model.extend({
title: DS.attr('string'),
description: DS.attr('string'),
url: DS.attr('string'),
type: DS.attr('string'),
searchText: DS.attr('string')
});
模板/ index.js:
{{search-home action="submitsearch"}}
{{search-list searchlist=model}}
模板/组件/搜索list.hbs
<ul>
hello - this is search list page {{ searchlist }}
{{#each searchlist as | searchItem|}}
<li>{{searchItem.title}}</li>
<li>{{searchItem.description}}</li>
<li>{{searchItem.url}}</li>
{{/each}}
问题:当我提交动作并尝试更新结果结果时 - 存储正在获取数据(我可以在ember数据中看到) - 但是UI没有得到新结果的刷新。但我移动&#34;返回this.store.query(&#39;结果&#39;,{searchText});&#34;代码模型()阻止它工作正常。我怎样才能让它在行动中发挥作用。
请帮助解决这个问题。 注意:我使用的是2.11.0版本
答案 0 :(得分:0)
RESTSerializer期望对象数组在与多重模型名称匹配的有效负载密钥内传递。或者,如果您不希望发送有效负载密钥,则可以使用JsonSerializer。
答案 1 :(得分:0)