我的以下代码段无效,我不断收到错误消息。我正在动态生成此内容。但是当它呈现时,我会收到错误。
我尝试过escape(),但它仍无法正常工作。
$ scope.teamInvites [index] .teamInviteId的值类似于12334
tname的值类似于Test Team 1
电子邮件的值类似于test@email.com
+ "<a ng-click='deleteRow(" + rowID + "," + $scope.teamInvites[index].teamInviteId+")'>Delete</a> | "
+ "<a ng-click='reInvite(" + rowID + "," + tname + ","+ email+")'>ReInvite</a>"
错误:
Error: [$parse:syntax] Syntax Error
每当变量中有@或空格时,我都会收到此错误。 我不知道这里的工作是什么。否则它工作正常。
答案 0 :(得分:1)
您需要转义生成的表达式中的字符串。所以(只是第二行):
+ "<a ng-click='reInvite(" + rowID + ","\" + tname + "\",\"" + email + "\")'>ReInvite</a>"
// ^ ^ ^ ^
// | | | |
// look here --------------------------+-------------+--+--------------+
答案 1 :(得分:0)
您可以使用数组来构建字符串而不是转义字符 - 使用Array.prototype.join。
对于字符串定义的模板而言,它非常高效且广泛用于Angular社区:
var a = [
"<a ng-click='deleteRow(", rowId, ",", $scope.teamInvites[0], ")", "'>Delete</a> | ",
"<a ng-click='reInvite(", rowID, ",", tname, ",", email ,")'>ReInvite</a>"
].join(''); // Join to a string.