ユーザー入力に基づいてどの場所の天気を表示しようとしています。そのために、入力として任意の場所を取る入力フィールドを作成しました。そのために私は、ユーザー入力を結合して、$ HTTPパラメータフィールドに配置するng-modelの値をhttpパラメータにバインドします
NG-モデル
ディレクティブを使用していました。
アプリは、ユーザーの入力に基づいて天気を表示することになっていたはずだった。もし誰かが私のコードを見て、私が間違っていたことを教えてくれればと感謝します。
htmlコード:
<!DOCTYPE html>
<html>
<script data-require="[email protected]" data-semver="1.5.8" src="https://opensource.keycdn.com/angularjs/1.5.8/angular.min.js"></script>
<script src="app.js"></script>
<head>
<meta charset="utf-8">
<title>Angular JS</title>
</head>
<body ng-app="jsbin">
<div ng-controller="DemoCtrl as vm">
<form>
Location: <input type="text" ng-model="vm.location" value="Paris">
<button type="button" ng-click=submit()>Submit</button>
</form>
<h1>{{ vm.data| json}}</h1>
</div>
</body>
</html>
app.js:コントローラは "controllerAs" 構文でインスタンス化されている場合
var app = angular.module('jsbin', []);
app.controller('DemoCtrl', function($http) {
var vm = this;
$scope.submit = function(){
var URL = 'https://api.apixu.com/v1/current.json';
var request = {
method: 'GET',
url: URL,
params: {
q: vm.location,
mode:'json',
cnt:'7',
units:'imperial',
key:'1a17370dc8e34f09946231209170404'
}
};
$http(request)
.then(function(response) {
vm.data = response.data;
}).
catch(function(response) {
vm.data = response.data;
});
};
});
おかげでたくさんの@georgeawgを参照してください。 ng-model指令の "location"だけでなく、なぜ "vm.location"であるのか説明できますか? – Ufomammut