我想从一个把手模板中为子视图添加一个css类。我目前收到的错误如下:
Uncaught TypeError: Object [object DOMWindow] has no method 'get'
我的代码如下:
App = Ember.Application.create()
App.ParentView = Ember.View.extend({
foo: 'bar',
content: 'Hello',
ChildView: Ember.View.extend({
classNames: this.get('parentView').get('classesToAdd')
})
});
我在这里有一个jsfiddle:http://jsfiddle.net/sohara/PKMTn/2/
classNames属性有什么特别的东西可以将上下文从Ember.View转移到dom元素吗?或者也许还有其他方法可以达到这个目的?
答案 0 :(得分:2)
您可以覆盖视图上的init
以访问classesToAdd
,请参阅http://jsfiddle.net/WCjda/1/
<强>车把:强>
<script type="text/x-handlebars">
{{#view App.ParentView}}
{{#view ChildView classesToAdd="my-class"}}
hello
{{/view}}
{{/view}}
</script>
<强> JavaScript的:强>
App = Ember.Application.create()
App.ParentView = Ember.View.extend({
foo: 'bar',
content: 'Hello',
ChildView: Ember.View.extend({
init: function() {
this._super();
var classes = this.get('classesToAdd');
this.set('classNames', Ember.makeArray(classes));
}
})
});
答案 1 :(得分:0)
我认为您不能在{Child}的this
声明中使用classNames
,因为视图对象尚未实例化。
但是,您可以使用绑定。请参阅Emberjs.com上“自定义HTML元素”部分下的文档。