在控制器内部编译
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;
});
我认为您正在寻找经过评估的内容。
您的控制器可能看起来像这样。
function TodoCtrl($scope) {
$scope.name = "Maximilian";
var template = "<div><span>"+$scope.$eval("name")+"</span></div>";
$scope.outputContainer = template;
}
就我个人而言,我会创建一个指令并对 html 片段使用 transclude 函数。
我已经更新了你的js fiddle
出现如下问题,
$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;
});
我认为您正在寻找经过评估的内容。
您的控制器可能看起来像这样。
function TodoCtrl($scope) {
$scope.name = "Maximilian";
var template = "<div><span>"+$scope.$eval("name")+"</span></div>";
$scope.outputContainer = template;
}
就我个人而言,我会创建一个指令并对 html 片段使用 transclude 函数。
我已经更新了你的js fiddle