В настоящее время я использую «ember-1.0.0-rc.7.js» для управления сохранением и хранением данных для моего приложения ember.Доступ к хранилищу данных контроллера и модели ember.js
user.js
App.User = DS.Model.extend({
firstName: DS.attr('string'),
lastName: DS.attr('string'),
category: DS.attr('string'),
status: DS.attr('string'),
position: DS.attr('string'),
fullName: function()
{
return '%@ %@'.fmt(this.get('firstName'), this.get('lastName'))
}.property('firstName', 'lastName')
});
App.User.FIXTURES =
[
{
id: 1,
firstName: 'Derek',
lastName: "H",
category: "admin",
status: "offline",
position: "3232"
},
{
id: 2,
firstName: 'Jim',
lastName: "H",
category: "admin",
status: "online",
position: "322"
}
];
UserListController.js
App.UserListController = Ember.ArrayController.create({
content: [],
users: App.User.find()
});
store.js
App.Store = DS.Store.extend({
revision: 12,
adapter: 'DS.FixtureAdapter'
});
Из сказанного выше, я предположил, что App.User.find() будет возвращать меня всех пользователей. Тем не менее, я получаю следующее сообщение об ошибке:
Ошибка От Firebug:
Your application does not have a 'Store' property defined. Attempts to call 'find' on model classes will fail. Please provide one as with 'YourAppName.Store = DS.Store.extend()'
TypeError: store is undefined
сообщение не имеет смысла, но в магазине определяется для приложения. Если хранилище не определено, то код ниже не работает.
В приведенном ниже коде я вызываю приложение App.User.find() в контексте маршрута, и он работает.
router.js
Bib.Router.map(function() {
this.resource('index', { path: '/' });
});
App.IndexRoute = Ember.Route.extend({
model: function() {
return ['a','b', 'c' ];
},
renderTemplate: function() {
this.render();
this.render('userList', { outlet: 'userList', into: 'application', controller: App.UserListController });//render the list in list outlet
},
setupController: function (controller, model)
{
controller.set('menu', model);
controller.set('test', App.User.find());
}
});
В index.html
<script type="text/x-handlebars" id="userList" data-template-name="userList">
{{#each controller}}
{{firstName}}
{{/each}}
</script>
Я хочу туда-регулятора представлять UserListController и он имеет ссылку на пользователя модели. Имейте в виду, что я не могу подключить это на маршруте, так как у меня есть только один маршрут для этого приложения.
Я считаю, что это связано с контекстом, в котором я звоню. Другими словами, использование этого в контроллере. Возможно, я не понимаю фундаментальную концепцию о том, как связаны контроллеры и модели.
Любые советы оценили, Спасибо, D
убедитесь, что вы определить ваш магазин ** ** Перед любой вызов '.find()' – intuitivepixel