【问题标题】:AngularJS and HTML: Escaping quotes inside a variable for an onclick functionAngularJS 和 HTML:在 onclick 函数的变量中转义引号
【发布时间】:2015-07-10 12:16:15
【问题描述】:

我只是想知道如果函数内部有引号,如何转义它。 例如,我的变量是:

   {{ video.Id }} = "Don't";

如果我在 html 中的标记是这样的:

    <button ng-click="executeFunc('{{video.Id}}')"/>

我会收到一条错误消息,提示我有未终止的引号。 (来自带有引号的变量。)任何帮助将不胜感激!谢谢

【问题讨论】:

  • 这个{{ video.Id }} = "Don't"; 真的写在你的代码中吗?它看起来很奇怪(因为 {{scopeVariable}} 符号通常在视图中用于访问变量,而不是设置它们,无论如何= 也需要在{{}} 内!)
  • 只是一个例子。基本上那个 video.Id 等于一个有引号的变量。我从角度得到一个错误,说我有未终止的引号,显然来自那个特定的变量。我不知道如何转义它,以便 angular 接受变量,同时将引号保留在该变量中
  • 变量设置在哪里 - 在 html 模板或控制器中?

标签: javascript html angularjs


【解决方案1】:

你不需要内部的 {{}},只需 &lt;button ng-click="executeFunc(video.Id)"/&gt;

您的控制器函数executeFunc 将获得正确的值。

【讨论】:

  • 我仍然收到错误,发生的情况是,当它已经像这样在 javascript 中定义时,我收到错误:Lexer Error: Unterminated quote at columns 93-95 [')] in expression [executeFunc('Don't')] 令我困惑的是如何能够在变量
  • 一定是你正在做的其他事情,我从代码中看不到。我测试了它,它工作正常。这是一个 plnkr 表明它有效:plnkr.co/edit/rm6lTpGvf95bMV0r5oWC
  • 不,你是完全正确的人,删除了双花括号和单引号,现在它工作正常,它仍然显示一个错误,但它仍然有效。干杯!
  • 我遇到了类似的问题。我尝试过这样的事情:&lt;button ng-click="executeFunc('video.Id')"/&gt; 注意变量周围的单引号
  • 需要注意的一点:即使你使用executeFunc(video.Id)并且它工作正常,当页面加载并检查ng-click值时,你会发现它仍然是executeFunc(video.Id)它不会显示为executeFunc(Don't),即它不会解析变量值并将其显示在 HTML 标记中,但出于编程需要,它会正确解析和读取变量值。
猜你喜欢
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
  • 2019-09-25
  • 2021-05-15
  • 2017-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多