Tag: ember.js

在Ember视图中获得结果

因此,让所有Emberjs的东西在一起玩得很好已经有好几天了。 我真的很喜欢这个旅程,但是我不时地开始觉得这样做了。 所以我有一个应用程序点击/#/ Records链接。 从他们需要查询Rails,返回结果,然后抓住其他页面上的显示视图。 当我把它作为一个页面应用程序,在页面上有视图时,我让它工作….现在最近两天,混乱已经悄悄进入。(视图中的一些额外位被删除了。 我的hbs记录/索引视图文件部分显示: Name {{counter}} {{#each record in controller}} {{#linkTo “record” record}} {{record.fullName}} {{/linkTo}} {{/each}} 我的Ember App: App = Ember.Application.create({ rootElement: ‘#ember’ }); App.RecordsController = Ember.ArrayController.extend({ }); App.Store = DS.Store.extend({ revision: 11, adapter: ‘DS.RESTAdapter’ }); App.Record = DS.Model.extend({ firstName: DS.attr(‘string’), middleName: DS.attr(‘string’), surname: DS.attr(‘string’), suffix: DS.attr(‘string’), }) App.Router.map(function(){ this.resource(‘records’); this.resource(‘record’, {path: […]

Ember Data属于协会(JSON格式?)

我有两个模型’作者’和’发布者’(Rails),发布者有一个作者/作者所属的发布者关系。 我正确设置了Ember模型 – JS Fiddle – 以及当我手动推入商店时的关联。 但是,在请求/发布者索引时,只会创建发布者记录。 我尝试了几种类型的JSON响应: 出版商与作者 { “publishers”: [ { “id”: 1, “name”: “Test P 1”, “author”: 1 } ], “author”: { “id”: 1, “name”: “Test A 1”, “publisher”: 1 } } 有作者的出版商 { “publishers”: [ { “id”: 1, “name”: “Test P 1”, “author”: 1 } ], “authors”: [{ “id”: 1, […]

Active Model Serializer和Pundit在显示CRUD操作期间删除记录

好的,这里有些东西被严重破坏了…… 我正在为我的Rails 5 JSONAPI服务器使用Active Model Serializer和Pundit,为我的前端应用程序使用Ember。 我有User模型和User模型的Pundit策略,可以防止非作者查看未发表的故事和章节。 目前,我看到一个奇怪的问题,如下所示: 1. UserA creates StoryA, and two published chapters Chapter1 and Chapter2 2. UserA then creates two unpublished chapters Chapter3 and Chapter4 3. UserA logouts 4. UserB logins 5. UserB views the same story created by UserA 6. Server policy kicks in and scope the results to only […]

使用qunit测试emberjs / rails / devise应用程序时“无法validationCSRF令牌真实性”

我有一个使用devise进行用户身份validation的emberjs / rails应用程序。 我正在使用qunit构建集成测试。 我在运行测试之前手动登录应用程序。 可以在测试期间处理GET请求,但POST请求失败。 特别是,在发出POST请求时,我从设计中得到“无法validationCSRF令牌真实性”错误。 当我重新加载测试时,我退出了应用程序。 我怎么得到qunit与设计玩得很好?

Rails:不是ember,不是JS响应,而是介于两者之间

我正在开发一个标准的rails应用程序,到目前为止我还没有使用任何AJAX,只是很好的HTML。 我的计划是迭代地添加“远程”链接以及所有这些东西并支持JS响应,因为我知道生成JS服务器端非常非常邪恶,但我发现它非常方便,简单,快速和它使应用程序足够活泼,i18n开箱即用。 使用纯JSON方法会更轻,但需要大量客户端编码。 现在想象一下,在这个应用程序中,用户有一个邮箱,并且由于他们可以在不重新加载页面的情况下完成大部分甚至所有操作,因此邮箱计数器永远不会更改,除非他们手动刷新页面。 所以,问题出现了:哪种方法最好? 我想过使用Ember(用于数据绑定),并通过某种用于ruby的把手实现与rails共享视图。 这对于开发人员来说非常棒,但不是很透明(我)。 虽然我猜我只需要编写将由ember使用的把手视图,其余的仍然可以用原始格式编写,不是吗? 另一个选择可能是使用某种事件系统(可能是EventSource?),并且只是方便地使用JS视图方法,并听取这些事件。 我想这些应该是JSON对象,并且必须对客户端进行编码才能处理它们。 这看起来有点麻烦,我需要一个heroku(faye?)的解决方案,这是我的应用程序托管的地方。 任何提示? 我认为ember方法更强大,但似乎也很复杂,我不想重复自己的服务器和客户端。 编辑: 我已经看到了这个 ,或多或少是选项#2。

未捕获的错误:如果没有加载模板编译器,则无法调用`compile`。 请在调用`compile`之前加载`ember-template-compiler.js`

我是ember.js框架的新手,并在rails和ember.debug.js -v 1.10.1(最新版本)上使用ruby。 我一直在网上看到ember改变了这个最新的补丁但我无法弄清楚如何解决我的问题: Uncaught Error: Cannot call `compile` without the template compiler loaded. Please load `ember-template-compiler.js` prior to calling `compile`. 有人可以请我指点让我的编译器正常运行吗? 我希望我知道我的项目中的代码片段有助于确定答案……

Ember模型仅加载最后一条记录

我正在尝试重现Railscasts 410示例(称为Raffler ),更改最新版本的设置并符合我的习惯: Ember 1.0.0-rc.6 Rails 4.0.0 Mongoid大师(4.0) 哈姆尔4 会徽0.3.0 在这个示例项目中,我们创建了一个简单的模型Entry ,它调用一个小的Rails Rest API。 一切都按预期工作,除了调用Raffler.Entry.find()获取所有条目只加载最后一条记录。 这是我的模型: Raffler.Entry = DS.Model.extend name: DS.attr(‘string’) winner: DS.attr(‘boolean’) 我的商店: DS.RESTAdapter.configure(‘plurals’, entry: ‘entries’) Raffler.Store = DS.Store.extend revision: 12 adapter: DS.RESTAdapter.create() 当调用Raffler.Entry.find() ,在http://localhost:3000/entries上有一个AJAX请求,并且返回所有记录(所以我不认为问题是服务器端): {“entries”:[{“id”:{“$oid”:”51e5b35b492cd4d286000001″},”name”:”Foo”,”winner”:true},{“id”:{“$oid”:”51e5b35b492cd4d286000002″},”name”:”Bar”,”winner”:false},{“id”:{“$oid”:”51e5b384492cd4d286000003″},”name”:”Baz”,”winner”:true}]} 但是只有最后一条记录真正加载到模型中。 这里是JS控制台: e=Raffler.Entry.find() e.toArray().length => 1 e.objectAt(0).get(‘name’) => “Baz” (always the last one) e.objectAt(1) => undefined

filter paginate将参数传递给异步ember数据关系请求

我想异步实现对ember数据的分页/过滤。 这是我的author模型: export default DS.Model.extend({ user: DS.belongsTo(‘user’), articles: DS.hasMany(‘article’, { async: true }), name: DS.attr(‘string’), email: DS.attr(‘string’) }); 路线: export default Ember.Route.extend({ model: function(params) { return this.store.find(‘author’, params.author_id); } }); 控制器: export default Ember.ObjectController.extend({ popularArticles: function() { return this.get(‘model.articles’).filter({ tab: ‘popular’ }); }.property(‘model.articles’) }); 请注意,模型具有带有DS.hasMany(‘article’, { async: true})关系的articles属性。 如果我使用此属性,则此请求将成为authors/1/articles及其异步。 这很好,直到我需要像authors/1/articles?page=2或authors/1/articles?tab=”hot”这样的请求。 一种可能的方法是,如控制器中所示,我有一个model.articles属性,用于过滤model.articles属性,并将生成过滤后的请求而不加载所有文章。 如何将查询参数传递给ember数据中的异步加载关系?

Ember Handling 401s于2015年重访

我可以在Ember / Ember数据中找到大量旧问题,询问/回答如何处理来自Rails后端的401s。 许多(如果不是全部)在这一点上似乎已经过时了。 我尝试过所有可以找到的东西。 ( Ember-Data handling 401’s ) 但无论我做什么,我都会在控制台中不断收到401错误,而401则永远不会被我的代码捕获。 如果在任何地方/模型/任何地方遇到过401,我想要做的就是添加一个重定向到’/’。 我不需要任何检查身份validation或其他任何东西。 我已经尝试将其添加到Application Route操作以及路由器本身。 error: function (error, transition) { console.log(“err: ” + error.status); if (error && error.status === 401) { return this.transitionToRoute(‘/’); } } 我也试过这个https://stackoverflow.com/a/19063009/1850353的几个版本。 App.ApplicationAdapter = DS.RESTAdapter.extend({ ajaxError: function(jqXHR) { var error = this._super(jqXHR); console.log(“jqXHR: ” + jqXHR.status); if (jqXHR && jqXHR.status === […]

Ember-data,hasMany关系,加载子集合,嵌套路由

我需要从带有ember-data及其默认REST适配器的rails后端加载模型。 我有一个与另一个有很多关系的模型: App.Post = DS.Model.extend({ title: DS.attr(“String”); comments: DS.hasMany(‘App.Comment’, {keys: ‘post_ids’, embbeded: true}); }) App.Post = DS.Model.extend({ body: DS.attr(“String”); post: DS.belongsTo(‘App.Post’); }) 服务器返回的JSON模型如下 { title: “a title”, comment_ids: [1,2,3,4] } 出于效率原因,我首先需要加载所有post而无需加载相关注释。 我这样做 App.store.findAll(‘App.Post’); 而且,当我选择一个特定的post时,我需要加载所有评论。 在ember-data文档中,据说我只需要调用 a_specific_post.get(‘comments’) 什么时候,我这样做,我得到一个很长的URL与所有评论ID: GET : /comments?ids%all_ids_appended_here 当然它不起作用,如果我有一千条评论,url非常长。 是否有可能获得与rails的嵌套路由模型匹配的请求? : GET /posts/post_id/comments 插件路由管理器https://github.com/ghempton/ember-routemanager似乎就是这种路由。 我可以将它与ember-data一起使用吗? 谢谢