Javascript 使用AngularJS处理Json数据

Javascript 使用AngularJS处理Json数据,javascript,arrays,json,angularjs,angularjs-ng-repeat,Javascript,Arrays,Json,Angularjs,Angularjs Ng Repeat,我有个新案子,需要帮助。我想有9个按钮和一个显示电影详细信息的面板,具体取决于点击了哪个按钮。因此,如果我单击“Transformers”,面板中应该会显示Transformers详细信息。然后,如果我单击“愤怒”,面板细节将更改为“愤怒细节”。我需要将这些数据保存在JSON文件中。我已经看过了,如何做到这一点,并努力理解我将如何去做这件事。这是我到目前为止得到的 JS: var app = angular.module("myApp", []); app.controller('MainCo

我有个新案子,需要帮助。我想有9个按钮和一个显示电影详细信息的面板,具体取决于点击了哪个按钮。因此,如果我单击“Transformers”,面板中应该会显示Transformers详细信息。然后,如果我单击“愤怒”,面板细节将更改为“愤怒细节”。我需要将这些数据保存在JSON文件中。我已经看过了,如何做到这一点,并努力理解我将如何去做这件事。这是我到目前为止得到的

JS:

var app = angular.module("myApp", []);

app.controller('MainController', ['$scope', function ($scope) {


}])
JSON:

{
  "movie": [
  {
    "id": 1,
    "name": "Star Wars The Phantom Menace",
    "format": "DVD",
    "rate": 4,
    "price": 2
  },
  {
    "id": 2,
    "name": "Star Wars A New Hope",
    "format": "DVD",
    "rate": 6,
    "price": 4
  },
  {
    "id": 3,
    "name": "Transformers",
    "format": "Blu-Ray",
    "rate": 7,
    "price": 3
  },
  {
    "id": 4,
    "name": "Transformers Dark of the Moon",
    "format": "Blu-Ray",
    "rate": 6,
    "price": 5
  }
]}
  <body ng-controller="MainController" ng-app="myApp">
    <h1 style="text-align:center">Garrett's Rentals</h1>

    <div ng-repeat="movie in movies">
      <button>{{movie.name}}</button>
    </div>

    <div class="panel">
      <h3>You have selected:</h3>
      <p>{{movie.name}}</p>
      <p>{{movie.format}}</p>
      <p>{{movie.rate}}</p>
      <p>{{movie.price}}</p>
    </div>
  </body>
HTML:

{
  "movie": [
  {
    "id": 1,
    "name": "Star Wars The Phantom Menace",
    "format": "DVD",
    "rate": 4,
    "price": 2
  },
  {
    "id": 2,
    "name": "Star Wars A New Hope",
    "format": "DVD",
    "rate": 6,
    "price": 4
  },
  {
    "id": 3,
    "name": "Transformers",
    "format": "Blu-Ray",
    "rate": 7,
    "price": 3
  },
  {
    "id": 4,
    "name": "Transformers Dark of the Moon",
    "format": "Blu-Ray",
    "rate": 6,
    "price": 5
  }
]}
  <body ng-controller="MainController" ng-app="myApp">
    <h1 style="text-align:center">Garrett's Rentals</h1>

    <div ng-repeat="movie in movies">
      <button>{{movie.name}}</button>
    </div>

    <div class="panel">
      <h3>You have selected:</h3>
      <p>{{movie.name}}</p>
      <p>{{movie.format}}</p>
      <p>{{movie.rate}}</p>
      <p>{{movie.price}}</p>
    </div>
  </body>

加勒特租房酒店
{{movie.name}
您已选择:
{{movie.name}

{{movie.format}

{{movie.rate}

{{movie.price}}

使用

HTML


加勒特租房酒店
{{movie.name}
您已选择:
{{movie.name}

{{movie.format}

{{movie.rate}

{{movie.price}}

提琴支撑:使用

HTML


加勒特租房酒店
{{movie.name}
您已选择:
{{movie.name}

{{movie.format}

{{movie.rate}

{{movie.price}}

提琴支撑:使用

HTML


加勒特租房酒店
{{movie.name}
您已选择:
{{movie.name}

{{movie.format}

{{movie.rate}

{{movie.price}}

提琴支撑:使用

HTML


加勒特租房酒店
{{movie.name}
您已选择:
{{movie.name}

{{movie.format}

{{movie.rate}

{{movie.price}}

拉小提琴寻求支持:

JS

HTML


加勒特租房酒店
{{movie.name}
您已选择:
{{movie.name}

{{movie.format}

{{movie.rate}

{{movie.price}}

JS

angular.module('myApp', [])

.controller('MainController',['$scope','$http',function($scope,$http){


  $scope.contents=null;
  $http.get('URL TO JSON').then(function(resp){
    console.log('Success', resp);
    $scope.contents=resp.data;


  },
  function(err){
    console.error('ERR',err);
  })

}]);
HTML


加勒特租房酒店
{{movie.name}
您已选择:
{{movie.name}

{{movie.format}

{{movie.rate}

{{movie.price}}

JS

angular.module('myApp', [])

.controller('MainController',['$scope','$http',function($scope,$http){


  $scope.contents=null;
  $http.get('URL TO JSON').then(function(resp){
    console.log('Success', resp);
    $scope.contents=resp.data;


  },
  function(err){
    console.error('ERR',err);
  })

}]);
HTML


加勒特租房酒店
{{movie.name}
您已选择:
{{movie.name}

{{movie.format}

{{movie.rate}

{{movie.price}}

JS

angular.module('myApp', [])

.controller('MainController',['$scope','$http',function($scope,$http){


  $scope.contents=null;
  $http.get('URL TO JSON').then(function(resp){
    console.log('Success', resp);
    $scope.contents=resp.data;


  },
  function(err){
    console.error('ERR',err);
  })

}]);
HTML


加勒特租房酒店
{{movie.name}
您已选择:
{{movie.name}

{{movie.format}

{{movie.rate}

{{movie.price}}


您只需在控制器内定义
电影
对象,即可在前端显示电影。将电影JSON直接嵌入到控制器中看起来像这样:

app.controller('MainController', ['$scope', function ($scope) {
 $scope.movies1 = 
  [{
    "id": 1,
    "name": "Star Wars The Phantom Menace",
    "format": "DVD",
    "rate": 4,
    "price": 2
  },
  {
    "id": 2,
    "name": "Star Wars A New Hope",
    "format": "DVD",
    "rate": 6,
    "price": 4
  },
  {
    "id": 3,
    "name": "Transformers",
    "format": "Blu-Ray",
    "rate": 7,
    "price": 3
  },
  {
    "id": 4,
    "name": "Transformers Dark of the Moon",
    "format": "Blu-Ray",
    "rate": 6,
    "price": 5
  }];
}]);
请注意,我已从movies对象内部删除了
movie
属性,并将
movies
转换为数组,以便
ng repeat
可以正常工作

如果您需要将电影JSON作为一个单独的文件,您可以使用@KuZon提到的
$http
服务加载该文件

$http.get('movies.json').then(function(json) {
    $scope.movies1 = json.data.movie;
  });
在本例中,我将movie属性保留在JSON对象中,并使用它选择要存储在
$scope.movies1
中的数组

你可以看到这两种方法

最后,不要忘记使用按钮上的
ng单击
,实际选择电影。如下所示:

<button ng-click="selectMovie1(movie)">{{movie.name}}</button>

您只需在控制器内定义
电影
对象,即可在前端显示电影。将电影JSON直接嵌入到控制器中看起来像这样:

app.controller('MainController', ['$scope', function ($scope) {
 $scope.movies1 = 
  [{
    "id": 1,
    "name": "Star Wars The Phantom Menace",
    "format": "DVD",
    "rate": 4,
    "price": 2
  },
  {
    "id": 2,
    "name": "Star Wars A New Hope",
    "format": "DVD",
    "rate": 6,
    "price": 4
  },
  {
    "id": 3,
    "name": "Transformers",
    "format": "Blu-Ray",
    "rate": 7,
    "price": 3
  },
  {
    "id": 4,
    "name": "Transformers Dark of the Moon",
    "format": "Blu-Ray",
    "rate": 6,
    "price": 5
  }];
}]);
请注意,我已从movies对象内部删除了
movie
属性,并将
movies
转换为数组,以便
ng repeat
可以正常工作

如果您需要将电影JSON作为一个单独的文件,您可以使用@KuZon提到的
$http
服务加载该文件

$http.get('movies.json').then(function(json) {
    $scope.movies1 = json.data.movie;
  });
在本例中,我将movie属性保留在JSON对象中,并使用它选择要存储在
$scope.movies1
中的数组

你可以看到这两种方法

最后,不要忘记使用按钮上的
ng单击
,实际选择电影。如下所示:

<button ng-click="selectMovie1(movie)">{{movie.name}}</button>

您只需在控制器内定义
电影
对象,即可在前端显示电影。将电影JSON直接嵌入到控制器中看起来像这样:

app.controller('MainController', ['$scope', function ($scope) {
 $scope.movies1 = 
  [{
    "id": 1,
    "name": "Star Wars The Phantom Menace",
    "format": "DVD",
    "rate": 4,
    "price": 2
  },
  {
    "id": 2,
    "name": "Star Wars A New Hope",
    "format": "DVD",
    "rate": 6,
    "price": 4
  },
  {
    "id": 3,
    "name": "Transformers",
    "format": "Blu-Ray",
    "rate": 7,
    "price": 3
  },
  {
    "id": 4,
    "name": "Transformers Dark of the Moon",
    "format": "Blu-Ray",
    "rate": 6,
    "price": 5
  }];
}]);
请注意,我已从movies对象内部删除了
movie
属性,并将
movies
转换为数组,以便
ng repeat
可以正常工作

如果您需要将电影JSON作为一个单独的文件,您可以使用@KuZon提到的
$http
服务加载该文件

$http.get('movies.json').then(function(json) {
    $scope.movies1 = json.data.movie;
  });
在本例中,我将movie属性保留在JSON对象中,并使用它选择要存储在
$scope.movies1
中的数组

你可以看到这两种方法

最后,不要忘记使用按钮上的
ng单击
,实际选择电影。如下所示:

<button ng-click="selectMovie1(movie)">{{movie.name}}</button>

您只需在控制器内定义
电影
对象,即可在前端显示电影。将电影JSON直接嵌入到控制器中看起来像这样:

app.controller('MainController', ['$scope', function ($scope) {
 $scope.movies1 = 
  [{
    "id": 1,
    "name": "Star Wars The Phantom Menace",
    "format": "DVD",
    "rate": 4,
    "price": 2
  },
  {
    "id": 2,
    "name": "Star Wars A New Hope",
    "format": "DVD",
    "rate": 6,
    "price": 4
  },
  {
    "id": 3,
    "name": "Transformers",
    "format": "Blu-Ray",
    "rate": 7,
    "price": 3
  },
  {
    "id": 4,
    "name": "Transformers Dark of the Moon",
    "format": "Blu-Ray",
    "rate": 6,
    "price": 5
  }];
}]);
请注意,我已从movies对象内部删除了
movie
属性,并将
movies
转换为数组,以便
ng repeat
可以正常工作

如果您需要将电影JSON作为一个单独的文件,您可以使用
$http
服务@KuZon加载该文件