我创建了一个应用程序,用于从列表中拖动组件(angular2组件,下同),并将其放入另一个组件中。在这个过程中,我使用了interactjs来拖放组件。但是当我将它放入另一个组件时,它只会在拖动的组件模板中加载静态html。
例如,我将此组件添加到另一个
中A <= {sum[7], sum[7:1]};
Q <= {sum[0], Q[7:1]};
Q_1 <= Q[0];
添加时,它应该如下所示
import {Component, View} from 'angular2/angular2'
@Component{
selector:"sample"
}
@View{
template:`<p>static content</p><p>{{contentToBind}}</p>`
}
class Sample{
contentToBind:string= "I am the binding content."
}
但实际上它只显示静态内容,如
static content
I am the binding content.
您可以在此plunker中查看此示例。
然后然后我将一个ClickListener绑定到这个Sample组件,当我点击组件已经添加到另一个组件中时,“我正在绑定内容”会出现(其他事件触发相同) 。 我认为由于互动,它已经跳出了angular2的生命周期。
与angularJs 1.x中的$ apply()类似的方法
答案 0 :(得分:2)
Interact不是角度2的一部分,也许您在Interact中的代码超出了角度2范围,如您所说。
您可以在plunker的Interactjs文件中使用NgZone,我编辑您的代码,它现在可以使用了。您应该在NgZone内发送您的活动。
像这样的东西。myParent.ngZone.run(
() => {
console.log("onDrop...");
ce.drop("Hello");
}
);
在plunker上看到它 Plunker