javascript标记中包含变量的AngularJS JSON数组

AngularJS JSON Array with variable in the javascript tag

本文关键字:AngularJS JSON 数组 变量 包含 javascript      更新时间:2023-10-05

我需要一个变量来标记JSON文件中的javascript。这是我的JSON文件的一部分

[
{
    "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"
    ],
},....

这是我的控制器的一部分

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;-这是Array。但当我想得到第一个物体时。var scope = angular.element($element).scope().mainSite[0];-这是不设防的。var scope = angular.element($element).scope().mainSite[0].id;-也不起作用

我的阵列

您正试图在该信息可用之前获取该信息,如果该信息来自$resource,则意味着它只能在document.ready发生之后才可用。

此外,你绝对不应该在那里使用scope(),如果你能更好地解释你正在做的事情,它会更容易提供帮助,如果你需要角度组件之外的全局变量中的一些资源值,你可以在那里声明变量,并在信息返回后为其赋值。