为什么 Angular 会尝试将 {{string}} 解析为表达式({string})
Why would Angular try to parse {{string}} as an expression ({string})?
如果我错过了一些明显的东西,请道歉。我看过类似的问题,但这通常归结为有人在不应该使用{{...}}
的地方,但我只是看不出在这种情况下出了什么问题。
我正在尝试实现 Angular 自动完成/提前输入 (angucomplete-alt(,但我遇到了一个特殊的问题。它完全按照作者的描述实现,但 Angular 在控制台中抛出以下错误:
Error: [$parse:syntax] Syntax Error: Token '{' invalid key at column 2 of the expression [{{placeholder}}] starting at [{placeholder}}].
http://errors.angularjs.org/1.5.3/$parse/syntax?p0=%7B&p1=invalid%20key&p2=2&p3=%7B%7Bplaceholder%7D%7D&p4=%7Bplaceholder%7D%7D
at angular.1.5.3.min.js:68
at Object.AST.throwError (angular.1.5.3.min.js:14006)
at Object.AST.object (angular.1.5.3.min.js:13993)
at Object.AST.primary (angular.1.5.3.min.js:13899)
at Object.AST.unary (angular.1.5.3.min.js:13887)
at Object.AST.multiplicative (angular.1.5.3.min.js:13874)
at Object.AST.additive (angular.1.5.3.min.js:13865)
at Object.AST.relational (angular.1.5.3.min.js:13856)
at Object.AST.equality (angular.1.5.3.min.js:13847)
at Object.AST.logicalAND (angular.1.5.3.min.js:13839)
奇怪的是,该指令似乎没有做任何特别的事情。占位符作为placeholder: '@'
传入,然后在指令模板中作为placeholder="{{placeholder}}"
输出。据我所知,这是正确的。
我已将angucomplete-alt
声明为我的主应用程序模块的依赖项。这就是在我的视图中设置自动完成的方式(作者第一个演示的精确副本,带有selected-object
,local-data
更改为绑定来自我的控制器的数据:
<div ng-controller="RosterController as roster">
<div angucomplete-alt id="ex1"
placeholder="Search crew"
maxlength="50"
pause="100"
selected-object="roster.selectedCrew"
local-data="roster.crew"
search-fields="name"
title-field="name"
minlength="1"
input-class="form-control form-control-small"
match-class="highlight">
</div>
</div>
这是我控制器的相关部分:
angular
.module('aa.roster')
.controller('RosterController', RosterController);
function RosterController () {
var vm = this;
vm.crew = [
{ name: 'abc', id: 1 },
{ name: 'def', id: 2 },
{ name: 'ghi', id: 3 }
];
}
我确实尝试回退到 Angular 1.4.6(作者在演示页面上使用的版本(,但同样的错误仍然存在。
是什么导致 Angular 尝试将{{placeholder}}
解析为单个大括号表达式,而不仅仅是输出字符串?
我现在已经解决了这个问题。第三方模块正在影响$templateCache
加载模板的方式,它要么尝试加载与 angucomplete-alt 模块中提供的模板不同的模板,要么正在影响模板的解析方式。
删除第三方模块可解决此问题。
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- ng init中的表达式无法使用ng repeat
- 正则表达式在字符串中找到base64
- Javascript 如何强制 string.replace 不将我的字符串解释为正则表达式
- 如何在javascript中使用string.replace.将匹配字符串开头的两个不同表达式替换为null
- 是否存在将String转换为可执行的c++表达式的方法
- 为什么 Angular 会尝试将 {{string}} 解析为表达式({string})
- 当正则表达式与空字符串匹配时,是否可以使用 regexp.exec 循环模拟 string.match
- 为 STRING 创建一个语法表达式.字符串.PEG上的绳子.js
- 使用String.search(“sinh(2”):“”时出错;无效的正则表达式“”;
- Javascript 正则表达式奇怪的行为 String.match()
- 使用正则表达式的javascript中的String.replace方法
- 在CasperJS中XPath表达式中使用contains(text(), "string")时如何
- 需要一个正则表达式来查找";字符串";但不是";[string]"
- 如何用匹配长度的$ string替换正则表达式匹配
- Javascript试图使用string.replace()和正则表达式来获取列表值
- Javascript:String.match()-在正则表达式中传递字符串变量