English 中文(简体)
如何在Ember看到被nes取的财产。 Array
原标题:How observes nested properties in Ember.Array

附录一有一个模型<编码>Stock,该模型有多个<编码>Stock Partition(其名称为partitions,其名称为Array)。

The Stock model has a property usedAmount that should change when any of all partition.amount changes, and, of course, be updated when a partition is added/removed.

Example :

stock.get( usedAmount ) -> 0
stock.get( partitions ) -> [Class, Class, Class]
stock.get( partitions )[0].set( amount , 12)
stock.get( usedAmount ) -> I want here to return 12
stock.get( partitions )[1].set( amount , 12)
stock.get( usedAmount ) -> I want here 24

How could Stock observes each partitions.amount? I can write a function addPartition that looks like this :

addPartition: function(partition) {
  partition.addObserver( amount , function() {
    this.get( owner ).notifyPropertyChange( usedAmount );
  });
}

但我希望有一个更好的解决办法。

最佳回答

我将利用强权折旧财产。 也可使用:

App.partitionsController = Ember.ArrayProxy.create({
    content: [],

    addPartition: function(amount) {
        this.pushObject(Ember.Object.create({
            amount: amount
        }));
    },

    usedAmount: function() {
        // reduce by adding all  amount  values, start with initial value 0
        return this.reduce(function(previousValue, item) {
            return previousValue + item.get( amount );
        }, 0);
    }.property( @each.amount )
});

The reduce is documented in the docs.

问题回答

暂无回答




相关问题
WordPress Data Storage Efficiency

I ve been asked to review a WordPress plugin of sorts and try to find ways of making it faster. The premise of this plugin is basically to store a bunch of users and shifts and appointments and ...

Convert a 2D array index into a 1D index

I have two arrays for a chess variant I am coding in java...I have a console version so far which represents the board as a 1D array (size is 32) but I am working on making a GUI for it and I want it ...

Convert an array of integers for use in a SQL "IN" clause

Surely there is a framework method that given an array of integers, strings etc converts them into a list that can be used in a SQL "IN" clause? e.g. int[] values = {1,2,3}; would go to "(1,2,3)"

Sorting twodimensional Array in AS3

So, i have a two-dimensional Array of ID s and vote count - voteArray[i][0] = ID, voteArray[i][1] = vote count I want the top 3 voted items to be displayed in different colors, so i have a 2nd Array -...

C++ Array Sort Me

Stuck on an array sorter. Have to sort numbers from largest to smallest. I m trying two loops (one nested in the other). Here s the code: int counter=0; // inner counter int counter2=0; // outer ...

PHP array callback functions for cleaning output

I have an array of output from a database. I am wondering what the cleanest way to filter the values is example array Array ( [0] => Array ( [title] => title 1 ...

Best practice of big javascript objects

sry for this imprecise topic name. I am querying a dataset a lot of times so using ajax request would end up in tons of http requests. For this reason I decided to use the json encode method to ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

热门标签