2014-09-17 2 views
0

Я использую последний ember-cli и в настоящее время тестирую его, создавая очень простое приложение с использованием данных ember-данных и http-mock для RESTAdapter - ember генерировать HTTP-макет апи-серверember.js - ember-cli: данные ember недоступны по детскому виду

Одно сообщение получить от API:

http://localhost:4200/api/api-server/posts/1 

Результат

{"post": 
    { 
     "id":1, 
     "title":"How to write a JavaScript Framework", 
     "author":"Tomhuda Katzdale", 
     "body":"Lorem ipsum dolor sit amet" 
    } 
} 

Здесь все соответствующие коды:

Адаптеры

import DS from 'ember-data'; 

export default DS.RESTAdapter.extend({ 
    namespace: 'api/api-server' 
}); 

Модель

import DS from 'ember-data'; 

export default DS.Model.extend({ 
    title: DS.attr('string'), 
    author: DS.attr('string'), 
    body: DS.attr('string') 
}); 

router.js

import Ember from 'ember'; 

var Router = Ember.Router.extend({ 
    location: EmbercliDataENV.locationType 
}); 

Router.map(function() { 
    this.route('application'); 
    this.resource('posts', function() { 
    this.resource('post', { path: ':post_id' }); 
    }); 
}); 

export default Router; 

Маршруты (сообщений и запись) - вид и ребенка вид

сообщений маршрутные

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model: function() { 
     return this.store.find('post'); 
    } 
}); 

пост маршрут

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model: function(params) { 
    return this.store.find('post', params.post_id); 
    } 
}); 

шаблон

posts.hbs

<h2>Posts List</h2> 

<ul> 
    {{#each}} 
    <li> 
     {{#link-to 'post' this}}{{title}}{{/link-to}} | {{author}} | {{body}} 
    </li> 
    {{/each}} 
</ul> 
{{outlet}} 

enter image description here

разместить HBS

<h2>Single Post</h2> 

<p>Post title: {{title}}</p> 
<p>Post author: {{author}}</p> 
<p>Post body: {{body}}</p> 

ПРОБЛЕМА: если вы смотрите на экран колпаке ниже, в хромированной уголек отладчик, одна модель сообщения подключена к почтовому маршруту, но не является p rinted в post.hbs

enter image description here

Использование только комплект уголек стартера, у меня нет проблем вообще с точно такой же приложение.

Спасибо за любую помощь, веселит

UPDATE

Ниже таже Ember приложение закодированы с использованием набора стартера, хост в XAMPP и использование базы PHP Стройный для REST Апи. РАБОТАЮЩИЙ!

enter image description here

ответ

0

После просмотра форума ember.js я получил ответ там - http://discuss.emberjs.com/t/strange-behavior-w-retrieving-model-from-controller/6155

кажется, при использовании Ember генерировать контроллер команду, вы в конечном итоге с Ember.Controller, а не Ember.ObjectController или Ember.ArrayController лол.

Я редактировать мой пост контроллер от: (генерировать с помощью Эмбер генерировать команду контроллера)

export default Ember.Controller.extend({ 
}); 

в

export default Ember.ObjectController.extend({ 
}); 

и теперь модель является обязательным: D

+1

, если вам нужен созданный контроллер типа 'Object', вам необходимо предоставить правильный вариант, например:' ember g имя контроллера --type = object', а если тип контроллера - 'Object' или' Array' ember автоматически установит свойство * model * соответствующего контроллера из крючка модели маршрутизатора. –

+0

Благодарим вас за информацию –

0

пытаются исправить свои данные, потому что после вложена в сообщениях, попробуйте следующее:

{"post":[ 
    { 
     "id":1, 
     "title":"How to write a JavaScript Framework", 
     "author":"Tomhuda Katzdale", 
     "body":"Lorem ipsum dolor sit amet" 
    }] 
} 

проверки в пределах ваших сообщений HBS, если данные видны, то сообщение должно работать нормально

+0

Уже попробуйте это. Все еще не работает. Я не думаю, что проблема связана с данными, потому что в модели есть данные, как показано на экранной крышке, внизу справа для сообщения с дочерним домом –

+0

Я нашел ответ на форуме Ember.js –

+0

хорошая работа, если вы можете ответить на свой собственный вопрос, чтобы люди могли использовать его для справки. Благодаря! – LanNguyen

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