标签: ember-data

什么是余烬数据验证的标准模式?(无效状态,成为无效......)

我有一段时间一直在努力奋斗; 让我们看看是否有人可以帮助我.

虽然在自述文件中没有明确说明,但是ember-data提供了一些验证支持.您可以在代码和文档的某些部分看到:

https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/model/states.js#L411

https://github.com/emberjs/data/blob/master/packages/ember-data/lib/system/model/states.js#L529

REST适配器本身不添加验证支持,但我发现如果我在ajax调用中添加这样的东西,我可以使用来自服务器端的errors对象将模型置于"无效"状态:

error: function(xhr){
  var data = Ember.$.parseJSON(xhr.responseText);
  store.recordWasInvalid(record, data.errors);
}
Run Code Online (Sandbox Code Playgroud)

所以我可以轻松地做到以下几点:

var transaction = App.store.transaction();
var record = transaction.createRecord(App.Post);
record.set('someProperty', 'invalid value');
transaction.commit()
// This makes the validation fail

record.set('someProperty', 'a valid value');
transaction.commit();
// This doesn't trigger the commit again.
Run Code Online (Sandbox Code Playgroud)

问题是:如您所见,交易不会尝试重新发布.这里这里解释了一点.

所以问题是:如果我不能重用提交,我该如何处理?我有点怀疑与我将异常地将模型放到invalid状态这一事实有关- 通过阅读文档,它似乎是用于客户端验证的东西.在这种情况下,我该如何使用它们?

ember.js ember-data

16
推荐指数
1
解决办法
3140
查看次数

一起请求两个模型

我有两个很多很多的模型.他们在我的应用程序的第一页上使用,我在加载它们时遇到问题.

两个型号只有少量项目(<200),我想在每个findAll请求中完全加载两个模型.但是当第一个模型被加载时,Ember开始逐项获取第二个模型的缺失数据.如果我尝试单独加载模型,我会收到错误并且必须设置{async:true}hasManyattr.出于某种原因,Ember没有认识到第二个模型的请求的json.

无论如何都要获取两个模型并等到两个负载再继续之前?

谢谢.

ember.js ember-data

16
推荐指数
1
解决办法
1万
查看次数

如何对ember-data关系进行分页

您如何对相关数据的请求进行分页?例如,如果我的人员有一千个任务模型,如果我执行以下操作,那么在RESTful思考中,我会得到所有这些模型.

var tasks = person.get('tasks');
Run Code Online (Sandbox Code Playgroud)

这将是太多的数据.如何强制一些查询参数到幕后工作的请求?理想情况下,端点上有这样的东西附加到它的末尾.

?&offset=3&limit=3

这是一个小提琴来说明我想要完成的事情IndexController.我不知道使用ember-data执行分页请求的"ember方式"是什么.

ember.js ember-data

16
推荐指数
3
解决办法
1019
查看次数

获取emberjs中的第一个模型记录

我需要一种方法来获取特定模型的第一个记录.这次我使用这样的方式:

this.store.findAll('configModel').then(function(items) {
 items.get('content')[0].set('isEnableShowUniqueName', true);
 items.get('content')[0].set('isSavedToServer', false);
 items.get('content')[0].save();
});
Run Code Online (Sandbox Code Playgroud)

但我认为那里有更好的和更好的方式?这是真的吗?你知道更好的方法吗?但是知道我没有记录的ID我需要该模型的唯一第一条记录.

ember.js ember-data

16
推荐指数
1
解决办法
9623
查看次数

emberjs无法克隆未实现Ember.Copyable的Ember.Object

我使用的是ember 1.3.1和ember-data 1.0.0-beta.5.在创建新模式时,我收到以下错误

断言失败:无法克隆未实现Ember.Copyable的Ember.Object

以下是我的型号代码

App.myModel = DS.Model.extend({name:DS.attr('string'),age:DS.attr('string')});

在我的创建路线模型功能

return Em.Object.create({});

最后保存我做了以下

this.store.createRecord('property',this.get('model'));

尽管出现错误,但我的后端服务已成功调用并保存了新模型.

请指导.

谢谢

ember.js ember-data

16
推荐指数
2
解决办法
6802
查看次数

从其他控制器访问控制器

我正在使用ember.js-pre3 ember-data revision 11构建项目管理应用程序.

如何初始化几个控制器并使其在全局范围内可用.例如,我有一个currentUser控制器和usersController,我需要访问每个州.我以前在Ember.ready函数中有以下代码,但它不再有效.我想我这样做是为了调试.https://github.com/emberjs/ember.js/issues/1646

老路:

window.Fp = Ember.Application.create
  ready: () ->

  # Initialize Global collections
  appController = @get 'router.applicationController'
  store = @get 'router.store'

  # User controller sets usersController binding on applicationController
  # fetches all team users from server
  # json returned from server includes flag "isCurrent"
  usersController = @get 'router.usersController'
  usersController.set 'content', store.findAll(Fp.User) 
  appController.set 'usersController', usersController

  # CurrentUserController
  # sets currentUserController binding on applicationController
  # finds currentUser from usersController 
  currentUserController = @get 'router.currentUserController'
  currentUserController.set 'content', usersController.get('findCurrentUser')
  appController.set 'currentUserController', …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data

15
推荐指数
1
解决办法
8659
查看次数

如何从应用程序的任何位置获取Ember Data的"商店",以便我可以执行store.find()?

随着最近的更新,我知道在路由器和控制器中,我可以很容易地做到this.store.find('model').但是我有一些需要调用的函数find不在路由器和控制器中.那么如何store从Ember App中的任何地方获取实例?

我知道最糟糕的是我能做到最坏App.__container__.lookup('store:main'),但我会尽量远离那个.

ember.js ember-data

15
推荐指数
3
解决办法
1万
查看次数

使用ember数据保存到hasMany关系的正确方法

我的ember.js应用程序中有一些相关的模型(使用Ember 1.0和EmberData 1.0 RC2):

App.List = DS.Model.extend({
    listName : DS.attr( ),
    cards : DS.hasMany( 'card', { async : true } )
});
Run Code Online (Sandbox Code Playgroud)

App.Card  = DS.Model.extend({
    description : DS.attr(  ),
    list : DS.belongsTo( 'list' )
});
Run Code Online (Sandbox Code Playgroud)

我正在使用以下代码来保存模型并将它们添加到hasMany关系中.

createCard : function(){
    var list = this.get( 'model' ),
        card ;

    card = this.store.createRecord( 'card', {
        description : this.get( 'cardDescription' ),
        list : list
    } );

    card.save().then( function(){
        var cards = list.get( 'cards' );

        cards.then( function(){
            cards.pushObject( card );
            list.save();
        } );
    } …
Run Code Online (Sandbox Code Playgroud)

ember.js ember-data

15
推荐指数
1
解决办法
6272
查看次数

Ember数据 - 保存记录损失有很多关系

我在使用Ember Data Fixture Adapter时遇到了问题.保存记录时,所有记录的所有关联都将丢失.我创建了一个简单的JS Bin来说明这个问题:http://jsbin.com/aqiHUc/42/edit

如果您编辑任何用户并保存,则所有项目都会消失.

这是使用Ember 1.0.0和最新的Ember Data canary版本.

我不确定我做错了什么,或者这是否与Ember Data有关.

谢谢

ember.js ember-data

15
推荐指数
2
解决办法
3618
查看次数

删除Ember Data中POST/PUT操作的JSON根元素

我正在使用一个在POST/PUT谓词中需要这样的JSON的Web服务:

{
    "id":"CACTU",
    "companyName": "Cactus Comidas para llevar",
    "contactName": "Patricio Simpson",
    "contactTitle": "Sales Agent",
    "address": "Cerrito 333",
    "city": "Buenos Aires",
    "postalCode": "1010",
    "country": "Argentina",
    "phone": "(1) 135-5555",
    "fax": "(1) 135-4892"
}
Run Code Online (Sandbox Code Playgroud)

但是Ember Data发送了一个这样的JSON:

{
    "customer": 
    {
        "id":"CACTU",
        "companyName": "Cactus Comidas para llevar",
        "contactName": "Patricio Simpson",
        "contactTitle": "Sales Agent",
        "address": "Cerrito 333",
        "city": "Buenos Aires",
        "postalCode": "1010",
        "country": "Argentina",
        "phone": "(1) 135-5555",
        "fax": "(1) 135-4892"
    }
}
Run Code Online (Sandbox Code Playgroud)

如何在发送POST/PUT操作时删除"customer"根元素?

json ember.js ember-data

15
推荐指数
1
解决办法
2372
查看次数

标签 统计

ember-data ×10

ember.js ×10

json ×1