Я новичок в Ember, и я следую вместе со своим учебником Todo и создаю базовое приложение для создания сообщений в блогах, настраивая их код для моих целей. Приложение работало нормально, пока я не добавил элемент ControlController к шаблону и контроллеру для обработки события isCompleted
. Вместо показа содержимого, как и раньше, он показывает: <Posts.Post:ember257:1>
, который, по-видимому, является именем модели, а не content
. Инспектор Ember говорит, что модель имеет правильный атрибут. Он просто не отображается должным образом. Вот код:Содержимое, не отображающее должным образом изображение Ember
<script type="text/x-handlebars" data-template-name="posts">
<section id="postapp">
<section id="main">
<ul id="post-list">
// new code added
{{#each itemController="post"}}
<li {{bind-attr class="isCompleted:completed"}}>
{{input type="checkbox" checked=isCompleted class="toggle"}}
<label>{{title}}</label>
<p>{{content}}</p>
</li>
{{/each}}
</ul>
</section>
</section>
</script>
И соответствующий JavaScript (см дно в PostController
увидеть только изменения после того, как код работал):
Posts.Post = DS.Model.extend({
title: DS.attr('string'),
content: DS.attr('string'),
isCompleted: DS.attr('boolean')
});
Posts.Post.FIXTURES = [
{
id: 1,
title: "JavaScript: The Dark Side",
content: "Here is a bunch of information on the dark side of " +
"Javascript. Welcome to hell!"
},
{
id: 2,
title: "The glory of underscore",
content: "Here, we're going to talk about the many uses of the " +
"underscore library. Read on!"
},
{
id: 3,
title: "Objectifying Objects",
content: "Objects are confusing, eh? Let's play around with objects " +
"a bit to see how to really use them."
}
];
// This is the only code that changed before the app was functioning properly
Posts.PostController = Ember.ObjectController.extend({
isCompleted: function(key, value){
var model = this.get('model');
if (value === undefined) {
// property being used as a getter
return model.get('isCompleted');
} else {
// property being used as a setter
model.set('isCompleted', value);
model.save();
return value;
}
}.property('model.isCompleted')
});
Любое понимание, почему право содержание не отображаемый был бы весьма признателен.
Изменение шаблона на '{{content.content}}' тоже сделало бы это –