我有以下模板:
<h1 class="text-center" ng-bind-html="row.text"></h1>
如果我的row.text的内容是字符串,请说:
Hi your name is {{ name }}
它将显示:
Hi your name is {{ name }}
而不是实际的{{name}}绑定.
我需要评估或编译该row.text表达式吗?
解决方法:
1:花了一些时间解决这个问题之后,我发现解析一个可能包含AngularJS表达式的字符串,下面是一种方法.
假设您的$scope是:{“ name”:“ my name”}
并且您的字符串表达式位于变量v中:var v =“ Hello,{{name}}”
var exp = $interpolate(v);
var result = exp($scope);
然后,您将在结果变量中获得以下字符串:您好,我的名字
然后,我将答案注入到scope变量中.
但是,与此相关的一个问题是,一旦完成,结果就是一个字符串,因此对作用域中“ name”变量的任何更改将不再影响该特定的求值表达式.
2:如果数据绑定仍然很重要,那么我要做的不是创建类似的间接方法,而是创建一个自定义模板字符串,例如“你好{{name}}”
并据此进行编译:
$compile($scope.row.text)($scope)
我在指令中都尝试过,并且现在可以正常工作.