2013-09-02 3 views
0

У меня есть модель:Как получить свойства модели

App.Item = DS.Model.extend({ 
    itemId: DS.attr('string'), 
    itemName: DS.attr('string'), 
    itemType: DS.attr('string'), 
}); 

Я успешно создать некоторые элементы из JSON. Я могу разместить их на странице {{#each items}} {{itemName}} {{/ each}}. Но я не знаю, как получить itemName в javascript.

Я попытался это:

var item = App.Item.find(1); 
console.log(item.itemName); 

-> неопределенного

Я не могу найти что-нибудь полезное из emberjs и документации уголька-данных. Может кто-нибудь мне помочь? Благодаря

+0

Вы попробовали item.get ('itemName') – Gogu

+0

yes, now :) -> undefined –

ответ

0

Я попытался это:

var item = App.Item.find(1); 
console.log(item.itemName); 
--> undefined 

Это нормально, потому что вызов .find(1); является асинхронным и возвращает обещание, а не предмет вы ожидаете.

Поэтому вы должны попробовать:

App.Item.find(1).then(function(result) { 
    console.log(record.get('itemName')); 
}); 

Это также зависит от того, где вы делаете App.Item.find() если это внутри маршрута, вы должны ждать, пока afterModel крючок называется получить доступ к позиции:

App.FooRoute = Ember.Route.extend({ 
    model: function() { 
    return App.Item.find(1); 
    }, 
    afterModel: function(record) { 
    console.log(record.get('itemName')); 
    } 
}); 

Также имейте в виду, что если вы вызываете find() без параметра, вы получите RecordArray, который вам нужно перебрать, чтобы получить доступ к вашим элементам. Также стоит отметить, что в уголек вы всегда должны использовать .get() и .set() вместо ванильного дот-нотации иначе вы угнать связывания в результате Механизм, без каких-либо обновлений в вашей точки зрения и т.д.

Примечание, если вы используете последний ember.js release (1.0.0), то вызов .find() должен быть несколько иным. Но это не ясно из вашего вопроса.

Надеюсь, это поможет.

+0

Думаю, вы также должны добавить объяснение, что он должен использовать '.get()' и '.set() ', когда он обращается к свойствам. – mavilein

+0

@mavilein, спасибо, просто добавил его к моему ответу :) – intuitivepixel

+0

Я использую 1.0.0.-rc.7. И теперь мой результат: «Извлечен запрос, но никаких данных для App.Device. Это может вызвать странные проблемы». –

Смежные вопросы