假设我有以下ember-data模型:
App.Person = DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string'),
starred: DS.attr('boolean')
});
Run Code Online (Sandbox Code Playgroud)
这与使用以下非常标准的CRUD API的Rails应用程序通信:
GET /people - get a list of people
POST /people - create a new person
GET /people/id - get a specific person
PUT /people/id - update a specific person
DELETE /people/id - delete a specific person
Run Code Online (Sandbox Code Playgroud)
这些都使用标准存储/适配器映射到Ember-Data.
但是,让我们说,为了让一个人"明星化"或"解除明星化",API不允许我们通过标准更新操作来执行此操作.此操作有一个特定的API端点:
POST /people/id/star - mark a person as "starred"
POST /people/id/unstar - mark a person as "unstarred"
Run Code Online (Sandbox Code Playgroud)
如何在Ember Data中使用此API?
看起来我需要以某种方式扩展DS.Store和DS.RESTAdapter,但我不确定让他们了解这些不同操作的最佳方法.对于应用程序的通用适配器必须知道主演人员,也感觉有点不对劲.
请注意,我无法控制API,因此我无法POST /people/id
了解"主演",因此它适合标准更新.
我目前正在尝试在我的应用程序中实现一个日期选择器,问题是没有关于如何jquery-ui-rails
通过 webpacker添加gem 的文档。
可能还有另一种方法可以添加宝石或其他适合我需要的宝石?
如何在内置的ember-cli服务器上对字体文件(或任何其他静态资源)的请求设置CORS?
这是仅供参考的错误消息:
Font from origin 'http://some-domain:4200' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:61277' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud) app.js
App = Em.Application.create();
App.IndexRoute = Em.Route.extend({
model: function(){
return {
newTasks: Em.A([
{id: 1, name: "Task 1"},
{id: 2, name: "Task 2"},
{id: 3, name: "Task 3"}
]),
inProgressTasks: Em.A([
{id: 4, name: "Task 4"},
{id: 5, name: "Task 5"}
]),
doneTasks: Em.A([
{id: 6, name: "Task 6"}
])
};
}
});
App.IndexController = Em.Controller.extend({
actions: {
moveTask: function(taskID, from, to){
var model = this.get('model');
var task = model[from].findProperty('id', parseInt(taskID, 10));
model[to].pushObject(task);
model[from].removeObject(task);
}
}
});
App.TaskContainerComponent = Em.Component.extend({ …
Run Code Online (Sandbox Code Playgroud) 我有一个包含不同属性的对象的数组.有些属性相似的对象.例如,
var array=[{'property':1},{'property':2},{'property':1}]
Run Code Online (Sandbox Code Playgroud)
如何使用ember js获取具有唯一属性的数组?
最后我需要一个数组
[{'property':1},{'property':2}]
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助.
更新:我尝试了uniq()方法.但是这不允许传递属性,因为ember允许进行排序.
谢谢!
背景:我是一名初学程序员,自学成才,希望能成为一名SPA.我开始使用JavaScript,Jquery,PHP和MySQL,现在对所有人都非常有信心.我从Ember开始,现在正在从拥有PHP API转向Node.这让我更接近Meteor ......我知道我需要使用Mongo,但是前后集成似乎是明智的并且有一些优势.
所以我的问题是拥有一个单独的REST后端API(例如Express)而不是集成的前端/后端(例如Meteor)有什么优势.
让我想起的是我的应用程序将基于平板电脑/ PC,但将来我会想要一个不同的移动版本,所以我只能使用相同的API.我意识到上述问题是这个堆栈问题的主要问题,但也许如果一个流星开发者可以澄清这是否确实是一个问题.
提前致谢!