错误:语法错误:令牌','是一个意外的令牌

时间:2013-11-11 02:04:55

标签: javascript angularjs

我有这个奇怪的错误,我不知道如何解决。我一直收到错误:语法错误:令牌','是表达式第6列的意外令牌[咳嗽,喋喋不休,口水呀,你是谁?你想要什么?]已从JSON文件加载。它已经工作了几个星期,但现在它不是

这是调用String

的代码行
<div id="story-text" ng-bind-html-unsafe="{{page.text}}" ></div>

这是工厂加载似乎正确加载的数据

  .factory('Stories', ['$http', function($http) {

            var factory = {};
            var stories = null;

            stories = $http.get('./json/stories.json')
                    .success(function(data) {
                        stories = data;

                    })
                    .error(function(data, status) {
                        alert(data);
                        alert(status);
                    });
            factory.getStories = function() {
                return stories;
            };
            factory.getStory = function(id) {
                return stories[id];
            };
            factory.getPage = function(id, page) {
                return stories[id].pages[page];
            };
            return factory;
        }])

最后,这一行将JSON文件中的数据加载到要在部分

上执行的范围内
 $scope.page = Stories.getPage($scope.param.id - 1, $scope.param.pageNo - 1);

据我所知,没有什么明显可以证明是错误的 正在加载的JSON是

"PageNo": 1,
"text": "Cough, splutter, slobber </br> Who are you? What do you want?",
"image": "img/story-1/jpg/1.jpg",
"sound_background": "sound/story-1-sound/Story1A.aif",
"sound_voiceover": "sound/story-1-voiceover/Story1-01.mp3"

任何人都可以看到不是

的东西

2 个答案:

答案 0 :(得分:8)

您可以将{{}}与ng-bind-html和ng-bind-html-unsafe一起使用。

只需将大括号括在 单引号 中:

<div id="story-text" ng-bind-html="'{{page.text}}'" ></div>

您甚至可以将其与过滤器结合使用

<div id="story-text" ng-bind-html="'{{page.text | uppercase}}'" ></div>

答案 1 :(得分:7)

好的,所以我认为如果ng-bind-html-unsafe的值是一个字符串,你显然不能使用{{}}。我的猜测是,角度尝试将其评估为函数或导致问题的事物

所以

<div id="story-text" ng-bind-html-unsafe="{{page.text}}" ></div>

应该是

<div id="story-text" ng-bind-html-unsafe="page.text" ></div>