2016-03-30 4 views
0

JSONファイルからjavascriptにタグを付ける変数が必要です。これはAngularJS JSON変数(javascriptタグ内に変数あり)

[ 
{ 
    "title": "AfroEarth USA", 
    "url": "us", 
    "id": "50011", 
    "country" : "US", 
    "countryFlag": "img/flags/us-flag.png", 
    "countries": [ 
     "AUSTRALIA", 
     "CANADA", 
     "SOUTH AFRICA", 
     "UNITED KINGDOM", 
    ], 
    "countrieUrls": [ 
     "/au", 
     "/can", 
     "/sa", 
     "/uk" 
    ], 
}, 
{ 
    "title": "AfroEarth UNITED KINGDOM", 
    "url": "uk", 
    "id": "50011", 
    "country" : "UK", 
    "countryFlag": "img/flags/uk-flag.png", 
    "countries": [ 
     "AUSTRALIA", 
     "CANADA", 
     "SOUTH AFRICA", 
     "UNITED STATES", 
    ], 
    "countrieUrls": [ 
     "/au", 
     "/can", 
     "/sa", 
     "/us" 
    ], 
},.... 

私のJSONファイルの一部は、これは私のコントローラ

afroEarthApp.factory('Main', ['$resource', function ($resource) { 
    return $resource('js/afromain.json',{}) 
}]) 
afroEarthApp.controller('afroEarthMainCtrl',['$scope','$http','$location','Main', function($scope, $http, $location, Main) { 
     $scope.mainSite = Main.query(); 
}]); 

そして、私のhtml

<!doctype html> 
<html lang="en" ng-app="afroEarthApp"> 
<head ng-controller="afroEarthMainCtrl"> 
    <!-- Site Title --> 
    <title>{{mainSite[0].title}}</title> 
</head> 
<body class="home-page" ng-controller="afroEarthMainCtrl"> 

    <ng-view></ng-view> 
    <script src="bower_components/angular/angular.js"></script> 
    <!--Angular.js Route--> 
    <script src="bower_components/angular-route/angular-route.js"></script> 
    <!--Angular.js Resource--> 
    <script src="bower_components/angular-resource/angular-resource.js"></script> 
    <script src="js/controllers.js"></script> 
    <!-- WLD CAMPAIGN TRACKING --> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 
     var $element = $('[ng-controller="afroEarthMainCtrl"]'); 
     var scope = angular.element($element).scope().mainSite; // this is a problem 
     console.log(scope); 
    }); 
    var wld_app_id = 312312; 
    var wld_app_url = "us.afroearth.com"; 
    </script> 

<title>{{mainSite[0].title}}</title>の一部です - これは作品です。 var scope = angular.element($element).scope().mainSite; - これは配列です。 しかし、最初のオブジェクトを取得したいとき。 var scope = angular.element($element).scope().mainSite[0]; - これは無効です。 var scope = angular.element($element).scope().mainSite[0].id; - また、その情報は、それがdocument.ready後に道以降でのみ利用可能であることを意味$リソースから戻って来ている場合は、それが使用可能になる前にその情報を取得しようとしている

My array

+0

まず、これをこのようにしようとしている理由は明らかではありません。 'angular.element()。scope()'を使うことは決して必要ではありません。第2に、戻り値は非同期の '$ resource'コールバックからのものであり、' $(document).ready'の間は利用できないので、あなたはこの方法でこの変数にアクセスすることはできません。 – Claies

+0

@Claiesに同意します。 –

+0

バックエンドプラットフォーム用のjsコード付きのスクリプトタグがあります。そして、私はこの変数に 'var wld_app_id' IDをJSONから入れておく必要があります。どうしたらいいですか? –

答えて

0

を動作しませんでした発生する。

また、ここではscope()を使用してはいけません。あなたがやっていることをよりうまく説明すれば、助けが簡単になります。角度コンポーネント以外のグローバル変数にリソースの価値が必要な場合は、そこに変数を置き、情報が戻ったらそれに値を割り当てます。

+0

私は多くの似たようなページを持っています。異なっているのは国、id(プラットフォームバックエンドの場合)、イメージ、タイトルなどです。このIDは、スクリプトタグのさらにjsコードに必要です。なぜ私のデータで配列を取得するのですか?しかし、要素を選択することはできません。 –

+0

http://i.stack.imgur.com/kFBsq.jpg - array –

+0

データを選択しようとした後に配列が来るためです。 https://www.youtube.com/watch?v=8aGhZQkoFbQあなたはイベントループと非同期にもっと精通している必要があります –

関連する問題