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