2014-01-12 30 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