在控制器内部编译

Compile inside a controller

出现如下问题,

            $scope.name = "Maximilian";
            var template = "<div><span>{{name}}</span></div>";
            var content = $compile(template)($scope);
            console.info(content);  //shows compiled innerText
            $scope.outputContainer = content[0].innerText; // shows uncompiled Content

我做错了什么?

一种可能的解决方案是将其放入 0 秒 $timeout 函数中。 如果有更好的告诉我。

$timeout(function(){
    $scope.outputContainer = content[0].innerHTML;
});

http://jsfiddle.net/cLenjedL/1/

我认为您正在寻找经过评估的内容。

您的控制器可能看起来像这样。

function TodoCtrl($scope) {
    $scope.name = "Maximilian";
    var template = "<div><span>"+$scope.$eval("name")+"</span></div>";
    $scope.outputContainer = template;
}

就我个人而言,我会创建一个指令并对 html 片段使用 transclude 函数。

我已经更新了你的js fiddle