2014-01-12 74 views
0

我越來越有Angularjs一個非常非常奇怪的問題,我使用,我頁面上定義的內聯模板像這樣的指令:奇怪的問題與AngularJS模板

<script type="text/ng-template" id="breadcrumb.html"> {[ state.current.displayName ]} </script> 

但是,我越來越這個奇怪的錯誤:

> Error: JSON.parse: expected property name or '}' 
> [email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:1035 
> @http://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:6926 
> transformData/<@http://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:6901 
> [email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:302 
> [email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:6900 
> [email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:7570 
> qFactory/defer/deferred.promise.then/[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:10905 
> qFactory/ref/<.then/<@http://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:10991 
> [email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:11906 
> [email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:11734 
> [email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:12012 
> bootstrap/doBootstrap/<@http://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:1299 
> [email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:3697 
> bootstrap/[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:1298 
> [email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:1311 
> [email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:1260 
> @http://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.js:20534 
> x.Callbacks/[email protected]://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js:4 
> x.Callbacks/[email protected]://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js:4 
> [email protected]://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js:4 
> [email protected]://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js:4 

現在,如果我真的東西添加到模板,例如任何隨機字符是這樣的:

<script type="text/ng-template" id="breadcrumb.html"> a{[ state.current.displayName ]} </script> 

然後錯誤消失,一切都呈現良好。

PS:請注意,我從{{}}到{[]},以避免與枝條語法衝突

編輯:

到插值問題做出反應,我已經使用:

angular.module('myapp', []).config(function($interpolateProvider){ 
     $interpolateProvider.startSymbol('{[').endSymbol(']}'); 
    } 
); 

這應該不夠。如果這不起作用,爲什麼把一個隨機字符'a'給它有幫助?

編輯2:

Plunker補充說:

請檢查該鏈接的工作代碼:

http://plnkr.co/edit/OQiJovrNzOraJdsSXeSY?p=preview

請檢查該鏈接,非工作代碼:

http://plnkr.co/edit/IzGpTdnqmO5MxtldnKec?p=preview

+0

角預計'{{}}'。 –

+0

更新了我的問題,謝謝。 – mr1031011

+0

你可以提供plnkr或jsfiddle嗎? – allenhwkim

回答

1

Angular期望{{}}用於插值。

爲了避免衝突,你可以使用ng-bind

<script type="text/ng-template" id="breadcrumb.html" ng-bind="state.current.displayName"></script> 

但是,我從來沒有用<script>標籤試了一下,雖然。

+0

更新我的問題,謝謝。 – mr1031011