这是一个可重用的指令,您可以使用它在发送事件时重建被包含的内容:
app.directive('relinkEvent', function($rootScope) { return { transclude: 'element', restrict: 'A', link: function(scope, element, attr, ctrl, transclude) { var previousContent = null; var triggerRelink = function() { if (previousContent) { previousContent.remove(); previousContent = null; } transclude(function (clone) { element.parent().append(clone); previousContent = clone; }); }; triggerRelink(); $rootScope.$on(attr.relinkEvent, triggerRelink); } };});这是一个jsFiddle演示其工作原理:http :
//jsfiddle.net/robianmcd/ZQeU5/
请注意,每次单击“触发器重新链接”按钮时,输入框的内容将如何重置。这是因为每当触发事件时,都会删除输入框并将其添加到DOM。
您可以按原样使用此指令,也可以对其进行修改,以使其触发
scope.$watch()而不是事件。



