約20の多数のプロパティを持つモデルがあります。
App.Foo = Ember.Object.extend({
foo01: null,
foo02: null,
...
foo20: null
null
との値を区別する必要があるため""
、次のプロパティもすべて持っています。
isFoo01Set: function() { return foo01 !== null; }.property('foo01'),
isFoo02Set: function() { return foo02 !== null; }.property('foo02'),
...
isFoo20Set: function() { return foo01 !== null; }.property('foo20')
私の実際のケースでの実際の名前は ではなくfoo01..20
、意味のある名前であり、すべて互いに異なることに注意してください。
次に、これらすべてのプロパティを設定/設定解除するための一連のアクションが必要です。
私のルーターでは:
setFoo01: function(router, instance) {
router.get('myController').setFoo01(instance.context);
},
unsetFoo01: function(router, instance) {
router.get('myController').unsetFoo01(instance.context);
},
までそうfoo20
です。そして、私のコントローラーで:
setFoo01: function(obj) {
obj.set('foo01', '');
},
unsetFoo01: function(obj) {
obj.set('foo01', null);
まで続きfoo20
ます。
明らかに、私は何か間違ったことをしているに違いありません。handlebars
しかし、(設計による) 制限のため、テンプレートでは何もできないことがわかりました。
私はこのようなものが欲しいです:
{{# each property in obj}}
<a {{action set obj property}}>Set {{property}}</a>
{{/each}}
しかし、これは可能ではないようです。
では、もっと良い方法があれば教えてください。