如何在EmberJS中显示/隐藏视图

pht*_*ven 6 javascript jquery ember.js

我希望在加载时隐藏View,然后当用户单击链接时它将显示视图.有人可以审查我的代码,让我知道我做错了什么?

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

App.childView = Em.View.extend({
  isVisible: false
});
Run Code Online (Sandbox Code Playgroud)

这是jsfiddle:http://jsfiddle.net/stevenng/uxyrw/5/

pan*_*atz 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>?
Run Code Online (Sandbox Code Playgroud)

JavaScript:

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

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

App.ChildView = Ember.View.extend();
Run Code Online (Sandbox Code Playgroud)

关于命名约定的注释:应该命名类UpperCase和实例lowerCase.请参阅博客文章.

  • 我会创建一个`CollectionView`,'`itemViewClass`处理可见性的切换.见http://jsfiddle.net/pangratz666/ZTdPF/. (2认同)