我有这个奇怪的错误,我不知道如何解决。我一直收到错误:语法错误:令牌','是表达式第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"
任何人都可以看到不是
的东西答案 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>