Javascript AngularJS$compile不';t删除双卷曲表达式
AngularJS应该在编译后删除双大括号。但是,在这种情况下不会进行移除:Javascript AngularJS$compile不';t删除双卷曲表达式,javascript,angularjs,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(h
// 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);
这将更新HTML,将{{name}}
替换为“John Smith”
如果我不使用这种动态方法,只编写静态HTML,AngularJS会在编译后正确地删除双卷曲表达式。我必须做些特殊的事情吗?如果触发代码的是外部事件,请在链接后尝试在您的作用域上运行
$digest
或$apply
e、 g
实际上没有什么区别,但最好将处理程序包装到
$apply
中的外部事件中,例如elem.click(function(){$scope.$apply(function(){/*code here*/});})代码>
var model = angular.element("#test").scope();
model.$apply(function (scope) { scope.name = "John Smith"; });
elem.click(function() {
$scope.$apply(function() {
// code here
});
});