如何从DOM中的现有元素设置子视图元素

时间:2012-05-03 12:45:37

标签: ember.js kineticjs

假设我有以下DOM:

<div id="container">
   <div id="created-by-other-tools">I want this to be my child</div>
</div>

div“容器”来自Ember.ContainerView:

container = Ember.ContainerView.create {
        elementId: 'container'
}

div“由其他工具创建”来自另一个与Ember没有任何关系的javascript代码:

newDiv = document.createElement('div')
container.appendChild(newDiv)

是否可以将此newDiv与我的容器的子视图相关联?我想要这样的事情:

 child = Ember.View.create()
 Ember.set(child,'element',newDiv)

我的想法是用我的子视图处理newDiv的事件。

1 个答案:

答案 0 :(得分:3)

我使用KinectJS和Ember.js创建了一个示例,请参阅http://jsfiddle.net/pangratz666/e6Dfh/

Ember.View.create({
    didInsertElement: function() {
        var id = this.get('elementId');
        var stage = new Kinetic.Stage({
            container: id,
            width: 578,
            height: 200
        });

        var layer = new Kinetic.Layer();
        ...
    }
}).append();

另请查看此博文:http://blog.sproutcore.com/using-raphael-js-with-sproutcore-2-0/。所有这些都是为SproutCore 2.0编写的,它可能对你有帮助。