灰烬 - 在父视图和子视图之间获取值

时间:2014-08-28 06:14:03

标签: ember.js

我有一个ParentView和一个嵌套在父级中的childView。父视图和子视图实例中都有一些变量。

现在我需要获取parentView和childView之间的值。

我的模板:

<script type="text/x-handlebars" data-template-name="application">
    <h2> Welcome to Ember.js</h2>
    {{view App.PreviewView}}
</script>

父视图:

<script type="text/x-handlebars" data-template-name="previewdiv">
    <div> Preview Div </div>
    <div  {{action 'getChildValue' target='view'}}>Get Child Value </div>
    {{view App.ChildpreviewView }}
</script>

子视图:

<script type="text/x-handlebars" data-template-name="childpreviewdiv">
    <div> Child Preview Div </div>
    <div  {{action 'getParentValue' target='view'}}>Get Parent Value </div>
</script>

App.js:

App.PreviewView = Ember.View.extend({
    templateName: 'previewdiv',
    tempParentValue: true,
    actions: {
        getChildValue: function(){
            // How to get "tempChildValue" here.
        }
    }
});

App.ChildpreviewView = Ember.View.extend({
    templateName: 'childpreviewdiv',
    tempChildValue: true,
    actions: {
        getParentValue: function() {
            // How to get "tempParentValue" here.
        }
   }
});

JSBIN Link

1 个答案:

答案 0 :(得分:0)

编辑了你的JSBIN

http://jsbin.com/wihowu/2/edit

要访问父视图,只需输入:

即可
this.get('parentView');

要访问所有子视图:

this._childViews

您只能访问所需的childView

var self = this;
this._childViews.forEach(function(childView){ 
     if(childView.get("templateName") === "childpreviewdiv") { 
        self.set('wantedChildView', childView); 
     } 
});