簡體   English   中英

Angular2 $ compile指令作為AngularJS 1

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM