gpt4 book ai didi

javascript - 编译嵌入模板

转载 作者:行者123 更新时间:2023-11-29 15:33:06 26 4
gpt4 key购买 nike

<div overlay config="overlayConfig">
<div class="dismiss-buttons">
<button class="btn btn-default" ng-click="subscriptions()">Save</button>
</div>
</div>

app.directive("Overlay", ["$timeout", "$compile", function($timeout, $compile) {
return {
restrict: "A",
transclude: true,
scope: {
config: "="
},
template: "<div class='overlay'><div ng-transclude></div></div>",
link: function(scope, iElement, iAttrs, ctrl, transclude) {
iElement = iElement.find(".ehn-overlay");
$(document.body).append(iElement);


scope.$watchCollection("config", function(value) {
if (scope.config.isVisible === false) {
iElement.remove();
} else {
$(document.body).append(iElement);
}

});

}

};
}]);

我需要将叠加层附加到主体上,完成后将其移除。它是第一次工作,但下次我追加时它不会触发 ng-click,所以我假设它没有被编译。有人可以在这里给出解决方案吗?

最佳答案

我试图重现你的问题,但我不能。这是 working Plunker .

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope, $timeout) {
$scope.name = 'World';

$scope.config = {
isVisible: false
};

$scope.do = function() {
$scope.config.isVisible = true;
$timeout(function() {
$scope.config.isVisible = false;
}, 2000);
};
});

app.directive("overlay", ["$timeout", "$compile", function($timeout, $compile) {
return {
restrict: "A",
transclude: true,
scope: {
config: "="
},
template: "<div><div ng-transclude></div></div>",
link: function(scope, iElement, iAttrs, ctrl, transclude) {
iElement = iElement.find(".overlay");
$(document.body).append(iElement);

scope.$watchCollection("config", function(value) {
if (scope.config.isVisible === false) {
iElement.remove();
} else {
$(document.body).append(iElement);
}

});

}

};
}]);

查看:

<div overlay config="config">
<div class="overlay"></div>
<div class="dismiss-buttons">
<button class="btn btn-default" ng-click="do()">Save</button>
</div>
</div>

几点说明:

  1. 不要将 jQuery 与 AngularJs 混合使用 - 这会导致无法测试的代码(以及其他一些问题)
  2. 有许多专门为 angularjs 创建的叠加层,使用其中之一是个好主意(除非你正在学习 angularjs)

这是 Plunker 中的另一个叠加层, 更棱 Angular 分明的方式。

关于javascript - 编译嵌入模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32495353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com