[英]Angular2 $compile directive as AngularJS 1
我試圖將我自己的項目從angular 1重寫為angular 2,我需要compile指令,但是我不能重寫它來做與以前相同的工作。
app.directive("compile", compile);
compile.$inject = ["$compile"];
function compile($compile) {
return function ($scope, element, attrs) {
$scope.$watch(
function ($scope) {
return $scope.$eval(attrs.compile);
},
function (value) {
element.html(value);
$compile(element.contents())($scope);
}
);
};
}
我知道Angular2中沒有觀察者,但是我有可能在Angular2中獲得相同的功能嗎?
而且我需要使用這樣的數據(我的意思是也使用子編譯指令進行編譯):
控制器:
function Controller($scope) {
$scope.Test1 = '<div compile="Test2"></div>';
$scope.Test2 = '<h1>Test!</h1>';
}
HTML:
<div compile="Test1"></div>
請記住,可以隨時動態更改Test1和Test2變量。
整個結果應打印為:
<div compile="Test1">
<div compile="Test2">
<h1>Test!</h1>
</div>
</div>
Angular 2並沒有$compile
等效項,我想這是因為它的使用通常表明設計不良。
您需要什么? 您是否真的需要能夠在模板中動態插入絕對的任何內容 ? 如果僅從預制的可用組件列表中選擇一個要顯示的組件就足夠了,那么*ngSwitch
或路由器都可以勝任。
DynamicComponentLoader是最接近的。 使用DCL,您可以動態地將任意組件插入DOM。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.