2014-11-02 4 views
1

Несмотря на то, что я установил RESPAdapter, чтобы позаботиться обо всем, он не доходит до моего сервера, чтобы получить данные. Мой код:Данные Ember не будут получены из API

var App = Ember.Application.create({ 
    LOG_TRANSITIONS: true 
}); 

App.ApplicationAdapter = DS.RESTAdapter.extend({ 
    host: '../api/' 
}); 

App.Me = DS.Model.extend({ 
    email: DS.attr('string'), 
    firstname: DS.attr('string'), 
    lastname: DS.attr('string') 
}); 

App.WelcomemessageController = Ember.Controller.extend({ 
    firstname:"I get rendered as i should", 
    model: function() { 
     return this.store.find('me'); 
    } 
}); 

И, да, свойство «firstname» получилось просто отлично. И при проверке с помощью Chrome Devtools запросы не поступают.

+0

вы уверены, что это ваш код? Это недопустимый javascript в вашем контроллере. В остальном модельный крюк принадлежит маршруту, а не контроллеру. – Kingpin2k

+0

О, извините, да, конечно, должно быть, после свойства firstname, что потерялось. Но не могу ли я установить модель на контроллере? Вид Welcommessage отображается вне выхода, что означает, что Welcomemessage видна на каждом маршруте. Так где я должен это положить? –

+0

Пожалуйста, проверьте [руководства] (http://emberjs.com/guides/routing/setting-up-a-controller/). «Модель: fn» относится к Маршруту. Контроллер имеет свойство ** ** с именем 'model', но это должен быть контейнер данных, а не функция выборки. Маршрут отвечает за выборку данных и делает эти данные доступными для контроллера. – MilkyWayJoe

ответ

1

В вашем случае вы просто хотите использовать вычисленное свойство, а не функцию модели. вы можете назвать его моделью, но это будет немного запутанно, поскольку в целом контроллер украшает модель, и в этом случае это будет просто свойство, называемое моделью на контроллере (для того, чтобы украсить модель, контроллер должен быть ObjectController или ArrayController)

App.WelcomemessageController = Ember.Controller.extend({ 
    firstname:"I get rendered as i should", 
    user: function() { 
     return this.store.find('me'); 
    }.property() 
}); 
+0

Он по-прежнему не делает никаких запросов на сервер, а модель в Ember chrome-plugin по-прежнему пуста. –

+1

Вычисляемые свойства вычисляются лениво. Если вы не вызываете 'user' в своем шаблоне, Ember не собирается тратить время на вычисление свойства. – Kingpin2k

+0

Спасибо, это был очень важный факт! –

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