我希望在加载时隐藏View,然后当用户点击链接时,它将显示视图。有人可以查看我的代码,让我知道我做错了什么吗?
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/
答案 0 :(得分: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
。有关此内容,请参阅blog post。
答案 1 :(得分:-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>
CoffeeScript的:
App.ParentView = Em.View.extend
isChildVisible: true
toggle: ->
@toggleProperty 'isChildVisible'
App.ChildView = Em.View.extend
isVisible: (->
@get('parentView.isChildVisible')
).property '_parentView.isChildVisible'