Javascript AngularJS:Error:[$parse:syntax]和<;的语法错误;空间>;
我下面的代码片段不起作用,我不断收到错误。我正在动态生成此内容。但当它渲染时,我会出错 我试过逃跑(),但还是不行 $scope.teamInvites[index].teamInviteId的值类似于12334 tname的值类似于测试团队1 电子邮件有如下价值test@email.comJavascript AngularJS:Error:[$parse:syntax]和<;的语法错误;空间>;,javascript,angularjs,Javascript,Angularjs,我下面的代码片段不起作用,我不断收到错误。我正在动态生成此内容。但当它渲染时,我会出错 我试过逃跑(),但还是不行 $scope.teamInvites[index].teamInviteId的值类似于12334 tname的值类似于测试团队1 电子邮件有如下价值test@email.com + "<a ng-click='deleteRow(" + rowID + "," + $scope.teamInvites[index].teamInviteId+")'>Delete<
+ "<a ng-click='deleteRow(" + rowID + "," + $scope.teamInvites[index].teamInviteId+")'>Delete</a> | "
+ "<a ng-click='reInvite(" + rowID + "," + tname + ","+ email+")'>ReInvite</a>"
每当变量中有@或空格时,我就会得到这个错误。
不知道这附近的工作是什么。否则它工作正常。您需要在生成的表达式中转义字符串。因此(仅第二行):
+“重新邀请”
// ^ ^ ^ ^
// | | | |
//看这里--------------------------+-------------+--+--------------+
您可以使用数组而不是转义字符构建字符串-使用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.
var a=[
“删除|”,
“重新邀请”
].加入(“”);//连接到字符串。
您没有抓住要点:问题不在于性能-问题在于ng click
属性中的表达式无效。它无效的原因是字符串没有被引用。这个解决方案也有同样的缺陷(但可能崩溃速度会快几微秒)。谢谢你,它很简单,它真的解决了我的问题
+ "<a ng-click='reInvite(" + rowID + ","\" + tname + "\",\"" + email + "\")'>ReInvite</a>"
// ^ ^ ^ ^
// | | | |
// look here --------------------------+-------------+--+--------------+
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.