我有一个指令,我希望克隆该指令适用的元素。在该指令的一个特定用法中,该元素具有一个按钮,该按钮具有绑定到它的点击处理程序。我希望我的克隆元素也有这个点击处理程序。但是,我所知道的用于克隆节点的传统方法对我来说并不适用。我到目前为止所做的一个例子如下。请记住,这个示例是为了演示而简化的,我的指令的最终目的不仅仅是克隆元素。
module.exports = function($window, $injector){
return {
restrict: 'A',
link: function(scope, element, attrs){
// Neither of the following methods actually copy the click handler over to the clone.
var myFirstClone = element[0].cloneNode(true);
var mySecondClone = angular.element(container).clone(true)[0];
element[0].after(myFirstCone); // doesn't have the click handler
}
}
}
我应该使用另一种方法吗?谢谢!
答案 0 :(得分:0)
您应该在顶级控制器中使用ng-if或ng-show,而不是克隆元素。有一个属性可以检查您是否滚动过某个点。当属性计算结果为true时,该元素将显示出来。此外,您可以使用css使转换更顺畅(例如,轻松进/出),我不会依赖javascript来处理这类视觉行为。