ember.js - How do I access a model in a controller? -
this pretty basic, reason can't working.
i've created companies resource:
app.router.map(function() { this.resource('companies'); });
and specified model
app.company = ds.model.extend({ name: ds.attr('string'), }); app.companiesroute = ember.route.extend({ model: function() { return app.company.find(); } });
i have fixtures test data.
now, shouldn't have access companies
data controller? this
app.companiescontroller = ember.arraycontroller.extend({ length: function () { return this.get('length'); }.property(), });
i'm getting 0, , i've tried in function makes me think somehow controller isn't getting loaded data - though able loop through models in template, this:
<script type="text/x-handlebars" data-template-name="companies"> <div class="row"> <div class="span12"> <h3>companies</h3> {{#each controller}} <li>{{ name }}</li> {{/each}} </ul> </div> </div> </script>
some parts of docs show setupcontroller instead of model: function() {}
, i'm not clear differences. i've tried both, no success.
any ideas?
your should declare path of property (or properties), computed property depends on. in case, content.length
:
app.companiescontroller = ember.arraycontroller.extend({ length: function () { return this.get('content.length'); }.property('content.length'), });
or use binding:
app.companiescontroller = ember.arraycontroller.extend({ lengthbinding: 'content.length' });
but computed properties require less work bindings (internally), , in general faster.
Comments
Post a Comment