我想知道我是否只是在这里做一些根本错误的事情,但我试图让一个模型在视图中定义样式属性。因此,例如 ember 视图使用卡片模板并从<div style="color: green">...</div>
模型属性颜色支持的开始。当我通过其他地方更改它时,App.Card.find(2).set("color", "color: red").save()
我希望模板更新值,但它什么也没做。直接在模板中使用{{ bindAttr style model.color }}
确实使值保持同步,但是我有一个额外的 ember-view div 元素。
javascript:
App = Ember.Application.create();
App.Store = DS.Store.extend({
adapter: 'DS.FixtureAdapter'
});
App.Router.map(function () {
// put your routes here
});
App.IndexRoute = Ember.Route.extend({
model: function () {
return App.Card.find()
}
});
App.Card = DS.Model.extend({
color: DS.attr('string'),
});
App.Card.FIXTURES = [{
id: 1,
color: "color: green"
}, {
id: 2,
color: "color: blue"
}];
App.CardView = Ember.View.extend({
templateName: "card",
attributeBindings: ['style'],
style: function () {
return this.get('controller.model.color')
}.property('controller.model'),
didInsertElement: function () {
App.Card.find(2).set('color', "color: red").save()
console.log(App.Card.find(2).get('color'))
}
});
模板:
<script type="text/x-handlebars" data-template-name="card">
<h1> HELLO THERE </h1>
</script>
<script type="text/x-handlebars">
<h2> Welcome to Ember.js </h2>
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="index">
{{#each item in model}}
{{render "card" item}}
{{/each}}
</script>