ember.js - Can't get data from a computed property with ember-model -
i making app ember.js , ember-model
i have model named plugin defined follows:
eme.plugin = ember.model.extend id: ember.attr() name: ember.attr() description: ember.attr() downloads: ember.attr() tags: ember.attr() eme.plugin.url = "/api/v1/plugins" eme.plugin.adapter = ember.restadapter.create() eme.plugin.collectionkey = 'plugins' i want show downloaded in index.hbs ( use ember-rails)
and fetch data in indexroute 's setupcontroller hook:
eme.indexroute = em.route.extend setupcontroller: (controller, model)-> console.log eme.plugin.findall().toarray() controller.set 'plugins', eme.plugin.findall() output :
[nextobject: function, firstobject: undefined, lastobject: undefined, contains: function, geteach: function…] but in chrome console execute eme.plugin.findall().toarray(), got results follows:
[{ __ember1377710636537: "ember404" __ember1377710636537_meta: meta _dirtyattributes: array[0] _reference: object _super: undefined _data: function() {} isloaded: true isnew: false set _data: function(value) {} __proto__: object }, { ... }, { ... }] in indexcontroller have computed property:
eme.indexcontroller = em.controller.extend mostdownloads:(-> # console.log @get('plugins').slice(0, 3) @get('plugins').slice(0, 3) ).property('plugins') and iterate mostdownloads there nothing show, when output {{plugins.length}}, can't count of data
who can give hand me?
plugins looks array , need use .@each iterator so:
eme.indexcontroller = em.controller.extend({ // code }).property('plugins.@each') here documentation on @each http://emberjs.com/guides/object-model/computed-properties-and-aggregate-data/
regarding array length, i've never had luck using .length, length do
plugins.get('length') hope helps!
Comments
Post a Comment