我的指示:
app.directive('showTitle', () => ({
restrict: 'A',
link (scope, ele, attrs){
console.log(ele.text());
if (/\{\{.*\}\}/.test(ele.text())) {
ele.attr('title', scope.$eval(ele.text()));
} else {
ele.attr('title', ele.text());
}
}
})
我的模板:
<div ng-repeat="item in record.records">
<p show-title>{{item.module}}</p>
</div>
我已尝试删除{{}}
,但这也无效。
angular.js:9383错误:[$ parse:syntax]语法错误:令牌 &#39; item.module&#39;是出乎意料的,期待[:]在第3列 表达式[{{item.module}}]从[item.module}}开始。
答案 0 :(得分:1)
你不需要明确评估内插绑定的第一个地方,angular将负责这一点,它在编译DOM时直接评估小胡子{{}}
表达式。
可能是您已将$interpolateProvider
配置为其他内容,例如[[
]]
/ <<
>>
,这就是为什么您需要进行此手动转换,因此您可以明确地使用$interpolate
服务来评估价值。
ele.attr('title', $interpolate(ele.text())(scope));