2

私は emberjs が初めてで、classNameBindings の仕組みを理解するのに少し苦労しています。

ここに私の現在の設定があります - http://jsfiddle.net/inquen/AXza5/

(これがどのように機能するかです: http://jsfiddle.net/inquen/N4WJS/ )

テンプレート

<script type="text/x-handlebars">
<div class="main-container">
 <div class="doors">
 {{#view StandClear.DoorView class="left-door"}}<div class="door-window"></div>{{/view}}
 {{#view StandClear.DoorView class="right-door"}}<div class="door-window"></div>{{/view}}
</div>
<div class="door-closure-lamp"></div>
{{#view StandClear.DoorStateView}}
  Toggle Doors
{{/view}}
</div>
</script>​

StandClear = Ember.Application.create();

JavaScript

StandClear.doorController = Ember.Controller.create({
   doorsOpen: true,
   toggleDoors:function(e){
   this.doorsOpen = (this.doorsOpen === false) ? true : false; 
   console.log(this.doorsOpen);
 }
});

StandClear.DoorView = Ember.View.extend({
   tagName: 'div',
   classNames:['car-door'],
   classNameBindings: 'StandClear.doorController.doorsOpen',
})

StandClear.DoorStateView = Ember.View.extend({
   tagName: 'button',
   classNames:['door-controller'],
   click:function(e){
   StandClear.doorController.toggleDoors();
 }
});

クラス名バインディングは、ページが読み込まれるときに機能しますが、バインドされている値が変更されても変更されません。

私のコードにも構造的な問題がいくつかあると感じています。これについてもフィードバックをいただければ幸いです。

4

0 に答える 0