6

ロード時にビューを非表示にしたい場合、ユーザーがリンクをクリックするとビューが表示されます。誰かが私のコードをレビューして、私が間違ったことを教えてもらえますか?

App.parentView = Em.View.extend({   
  click: function() {
    App.childView.set('isVisible', true);
  }
});

App.childView = Em.View.extend({
  isVisible: false
});

これがjsfiddleです:http://jsfiddle.net/stevenng/uxyrw/5/

4

2 に答える 2

10

isVisibleBinding非表示/表示するビューを 簡単に作成します。 http://jsfiddle.net/pangratz666/dTV6q/を参照してください。

ハンドルバー:

<script type="text/x-handlebars" >
    {{#view App.ParentView}}
        <h1>Parent</h1>
        <div>
            <a href="#" {{action "toggle"}}>hide/show</a>
        </div>     
        {{#view App.ChildView isVisibleBinding="isChildVisible" }}
            {{view Em.TextArea rows="2" cols="20"}}
        {{/view}}        
    {{/view}}
</script>​

JavaScript :

App.ParentView = Em.View.extend({   
    isChildVisible: true,

    toggle: function(){
        this.toggleProperty('isChildVisible');
    }
});

App.ChildView = Ember.View.extend();

命名規則に関する注意: クラスには名前を付けUpperCase、インスタンスにする必要がありますlowerCaseこれについてはブログ記事を参照してください。

</p>

于 2012-05-29T18:56:15.043 に答える
-1

何らかの理由でバリューバインディングがうまくいかなかったので、childView内のparentViewプロパティを観察するとうまくいきました

ハンドルバー:

<script type="text/x-handlebars" >
    {{#view App.ParentView}}
        <h1>Parent</h1>
        <div>
            <a href="#" {{action "toggle"}}>hide/show</a>
        </div>     
        {{#view App.ChildView }}
            {{view Em.TextArea rows="2" cols="20"}}
        {{/view}}        
    {{/view}}
</script>​

コーヒースクリプト:

App.ParentView = Em.View.extend
  isChildVisible: true
  toggle: ->
    @toggleProperty 'isChildVisible'
App.ChildView = Em.View.extend
  isVisible: (->
    @get('parentView.isChildVisible')
  ).property '_parentView.isChildVisible'
于 2014-11-20T07:49:02.700 に答える