angularjs,加载本地json导致“SyntaxError:Unexpected token”

时间:2014-04-16 10:36:16

标签: javascript json angularjs

我在某处看到这是因为json文件的内容类型不是“application / json”,但是如何在本地机器上运行呢?

我要做的是加载两个单独的json文件,其中包含页面的翻译。但它似乎几乎不可能,可能不是。

var medicalApp = angular.module('medicalApp', ['ngRoute', 'ngResource', 'ngCookies']);

// configure our routes
medicalApp.config(function($routeProvider) {
    $routeProvider
        ...
});

medicalApp.factory('getDE', function($resource, $http) {
    //return $resource('../translations/de.json');
    var defaults = $http.defaults.headers;
    defaults.get = defaults.get || {};
    defaults.get['Content-Type']='application/json';

    var values = $resource('../translations/de.json', {}, {
        query: {method:'GET',headers:{'ignored':'ignored'}}
    });

    console.log(JSON.stringify(values));

    return values;
});

medicalApp.factory('getFR', function($resource, $http) {
    //return $resource('../translations/fr.json');
    var defaults = $http.defaults.headers;
    defaults.get = defaults.get || {};
    defaults.get['Content-Type']='application/json';

    var values = $resource('../translations/fr.json', {}, {
        query: {method:'GET',headers:{'ignored':'ignored'}}
    });

    console.log(JSON.stringify(values));

    return values;
});

...

medicalApp.controller('MainCtrl', function($scope, $cookies, getFR, getDE) {
    var userLang = navigator.language || navigator.userLanguage;
    var lang = userLang.substring(0,2);
    if (lang == 'fr') {
        getFR.get(function(data){
            alert(JSON.stringify(data));
        });
    } else {
        getDE.get(function(data){
            alert(JSON.stringify(data));
        });
    }
});

有关如何使其发挥作用的任何想法?

1 个答案:

答案 0 :(得分:1)

我想你的json文件中有'而不是"。检查它的有效性here,或向我们展示它的内容