2016-04-10 1 views
0

私は何かが明らかでない場合は謝罪します。私は似たような問題を見てきましたが、これは普通は{{...}}を使っている人には下がりますが、このインスタンスで何が間違っているのか分かりません。なぜ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宣言しました。

<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> 

そして、これは私のコントローラの関連する部分である:これは、オートコンプリートが私の見解(selected-objectと私のコントローラからデータをバインドするように変更local-dataと著者最初のデモの正確なレプリカに設定されている方法です

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}}を試してみて、解析する角度引き起こしている何をしようとしませんでした文字列を出力する代わりに中括弧式を使用しますか?

+1

郵便実際のコード、イベントより良いJSFiddle – Max

+0

私はJSFiddleを(何らかの理由で、それも基本的な角度コンセプトで、動作しません)投稿することはできません。私が持っているものは非常に簡単ですが、私はいくつかのコードで質問を更新します。 –

+0

ただの観測ですが、そのライブラリはかなり古いです。 [ここ](http://darylrowland.github.io/angucomplete/)デモページには、使用している:AngularJSのv1.2.9デベロッパー は心に留めておくべきものだろう。 – segFault

答えて

0

私は今、この問題を解決してきました。第三者のモジュールが$templateCacheがどのようにテンプレートをロードしていて、angucomplete-altモジュールで提供されているものとは異なるテンプレートをロードしようとしていたか、テンプレートの解析方法に影響を与えていました。サードパーティのモジュールを取り外す

は、この問題を解決します。

関連する問題