Ember在控制器中设置Component属性

时间:2015-03-02 16:22:47

标签: ember.js

我有一个Component,我想在Controller中设置它的属性。我似乎在使用计算的别名来设置它时遇到了问题。请参阅下面的代码。

我的组件如下:

 TM.MyModalComponent = Ember.Component.extend({
    totalWidth: '200px',  
    widthStyle: function() { 
        console.log(this.get('totalWidth'));
        return 'width:'+this.get('totalWidth');    
    }.property('totalWidth'),  
 });

我试图在父控制器中设置属性totalWidth,如下所示:

modalWidth:Ember.computed.alias("myModalComponent.totalWidth"),
this.set("modalWidth",'100px'); 

当我尝试控制日志时它返回一个未定义的值,并使用
来返回错误 Property set failed: object in path "myModalComponent" could not be found or was destroyed.

任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

请参阅这个小提琴上的工作示例,http://jsfiddle.net/gXcfL/28/。将控制器属性绑定到模板中的组件属性。

<script type="text/x-handlebars">
<div class="container">
    <div>Click to set controller's width value</div>
    <button class="btn" {{action 'changeWidth'}}>Click</button>
    {{view TM.MyModalComponent 
     totalWidth = modalWidth
    }}
</div>
</script> 

<script type="text/x-handlebars" data-template-name="component">
    {{widthStyle}}
</script>