1

我正在使用Ember v1.0.0, Ember-Data v1.0.0-beta.3和构建使用Ember-tools.

在我的内部order_controller,我有一个名为: 的动作delivered。一旦触发,我想对当前对象进行一些更改(这里没有问题)——但我也想从同一个模型中查询一个对象并对其进行一些更改。

这是我的对象控制器:

var OrderController = Ember.ObjectController.extend({
actions: {
    edit: function(){
        this.transitionToRoute('order.edit');
    },
    delivered: function(){
        // orders are sorted by "sequence" attr.
        var current_sequence = this.get('sequence');

        // find the next order in pipeline
        var next_sequence = current_sequence+=1;

        // HERE is the challenge!
        var next_order = App.Order.find({sequence: next_sequence});

        this.set('up_next', false);

        next_order.set('up_next', true);

        this.transitionToRoute('order', next_order.id)

    }
}

});

module.exports = 订单控制器;

我使用FIXTURES:

Order.FIXTURES = [
    {
        id: 1,
        name: "John Doe",
        email: "john@doe.com",
        telephone: "263663636",
        address: "123 Example Rd.",
            ......
        sequence: 4,
        done: false,
        up_next: false
    },

基本上,我正在寻找一种从 ObjectController 内部查询记录的方法,它具有比 ID 更具体的属性。

谢谢!

4

1 回答 1

1
    // Find all the records, find returns a promise
    var promise = this.get('store').find('order');

    this.set('up_next', false);

    next_order.set('up_next', true);

    // once the promise is resolved
    promise.then(function(records){

      // filter out the first item to satisfy the method passed into it
      // http://emberjs.com/api/classes/Ember.Array.html#method_find
      var filteredRecord = records.find( function(record){ return record.get('sequence')==sequenceNo;});
      this.transitionToRoute('order', next_order)
    }
于 2013-11-17T07:20:07.933 回答