搜索模式动词
Ember.js Search Model Verbs
教程&我发现的指南表明Ember.js模型非常以数据为中心,因为浏览器中的数据被持久化到服务器和/或模型中填充了来自服务器的数据。
更以动词为中心的东西怎么样?例如,我的案例是,到目前为止,我有一个"搜索"模型,其中搜索有一个查询,一个状态("beforesearch","duringsearch"等…),并且,希望,一些结果。我希望搜索到"runQuery",它向服务器发出一个ajax请求,它返回并填充模型的结果,并将其状态更改为"aftersearch"。
在模型上处理这些动词的最好方法是什么?"runQuery"应该通过ember-data执行,还是使用$。Ajax还是类似的?我是否以错误的方式考虑模型,这实际上应该通过控制器?
编辑:在阅读了REST之后,我想我想要的是POST到"控制器"资源。例如:
POST:/searches(创建一个搜索)
POST:/searches/1/run(执行search 1的"run"控制器
Ember.js/ember-data有像这样调用控制器资源的推荐方式吗?
Ember-data非常面向使用包含各种信息字段和关系并由唯一id定义的模型对象。我的API一半像ember-data期望的那样,一半像你描述的那样,它更多的是关于数据处理或执行计算,而不是创建/检索/更新/删除具有id的数据对象。把这些计算当作相同的计算,并为其分配一个id并将其持久化在数据库中是没有意义的。
在我的例子中,因为我同时拥有ember-data风格的数据对象和计算功能,所以我混合使用ember-data和自定义ajax请求。我存储了由ember-data检索的关系数据,但是我扩展了模型,使其包括对计算部分的访问。
例如:App.Event = DS.Model.extend({
name: DS.attr('string'),
items: DS.hasMany('App.Item'),
...etc...
searchData: null,
searchInEvent: function(data) {
var _this = this;
return $.ajax({
url: "/api/events/" + this.get('id') + "/search/",
dataType: 'json',
type: 'POST',
data: data
}).then(function(result){
_this.set('searchData', result);
});
}
});
App.Event
是一个普通的余烬数据模型,由路由器通过通常的余烬约定加载,由于各种控制器需要访问搜索功能,它们可以通过添加到模型中的searchInEvent
和searchData
访问它。
- 用程序搜索JQuery数据表中的文本
- Javascript,访问一个主要对象模块模式中的每个对象
- 在html Select中添加搜索
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 试图在引导模式内动态生成图表,得到offsetWidth错误
- 在字符串中搜索模式并存储其值
- 在数据集中使用递归搜索 2D 数组模式
- 如何在单击搜索时复制模式 css3 动画效果
- 从数据库(NodeJS)中的搜索返回Regex模式
- Regex查找正则表达式标志和搜索模式
- Regex模式搜索从2个字母或2个数字开始
- 搜索并替换特定模式
- 如何识别搜索模式
- 奇怪的点击事件模式,输入搜索框和无序列表
- 搜索模式动词
- 匹配模式的所有谷歌搜索页面
- Javascript -正则表达式-如何跳过在模式中存在的字符串的搜索
- Js搜索模式不起作用
- 处理搜索结果和引导模式
- JS正则表达式搜索电话号码模式