AngularJS $ compile不会删除双卷曲表达式

时间:2014-08-11 06:17:25

标签: javascript angularjs

AngularJS应该在编译后删除双花括号。但是,在这种情况下不会发生删除:

// testController is defined first
var html = "<div id='test' ng-controller='testController'>{{name}}</div>"; 
var $compile = angular.element("html").injector().get("$compile");
var link = $compile(html);
var content = link(angular.element("#view").scope());
$("#view").append(content);

{{name}}仍出现在呈现的HTML页面中。但是,绑定工作。例如:

var model = angular.element("#test").scope();
model.$apply(function (scope) { scope.name = "John Smith"; });

这将更新HTML,将{{name}}替换为&#34; John Smith&#34;。

如果我不使用这种动态方法并只编写静态HTML,AngularJS会在编译后正确删除双卷曲表达式。我必须做一些特别的事吗?

1 个答案:

答案 0 :(得分:2)

在链接后尝试在示波器上投放$digest$apply,如果它是触发您的代码的外部事件。

e.g。

elem.click(function() {
    $scope.$apply(function() {
        // code here
    });
});