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会在编译后正确删除双卷曲表达式。我必须做一些特别的事吗?
答案 0 :(得分:2)
在链接后尝试在示波器上投放$digest
或$apply
,如果它是触发您的代码的外部事件。
e.g。
elem.click(function() {
$scope.$apply(function() {
// code here
});
});