道歉,如果我失去了明顯的東西。我已經看過類似的問題,但這通常是使用{{...}}
的地方,但他們不應該這樣做,但在這種情況下我看不出什麼問題。Angular爲什麼會嘗試將{{string}}解析爲表達式({string})?
我試圖實現一個角度自動完成/鍵入(angucomplete-alt),但我遇到了一個奇怪的問題。已實現準確爲筆者介紹,但角投在控制檯以下錯誤:
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 }
];
}
我曾嘗試回落到角1.4.6(筆者使用的演示頁上的版本),但同樣的錯誤仍然存在。
是什麼原因造成角,試圖解析{{placeholder}}
作爲一個單一的大括號表達,而不是隻輸出字符串?
發佈實際代碼,事件更好JSFiddle – Max
我無法發佈JSFiddle(出於某種原因,即使使用基本的Angular概念,它也無法工作)。我會用一些代碼更新這個問題,儘管我擁有的很簡單。 –
只是一個觀察,但該圖書館是相當古老。演示頁面[here](http://darylrowland.github.io/angucomplete/)正在使用:AngularJS v1.2.9 可能需要記住。 – segFault