2016-03-29 22 views
0

AngularJSの学習に少し問題があります。私はコントローラが何であるかを100%確信していません。 exempleのために、私は単にSQL要求の結果を表示する次のHTMLのdivを持っている:AngularJSでコントローラを呼び出すと、

<div ng-app="searchApp" ng-controller="searchCtrl"> 
<table> 
     <tr ng-repeat="x in names"> 
     <td>{{ x }}</td> 
     </tr> 
    </table> 
</div> 

そして、ここでは、コントローラの:

<script> 
var app = angular.module('searchApp', []); 
app.controller('searchCtrl', function($scope, $http) 
{ 
    $http.get("server.php") 
    .then(function (response) 
    { 
     $scope.result = response.data; 
    }) 
    .then(function(response){ 
     console.log(response); 
    }) 
}); 
</script> 

server.phpというので、単純な文字列の配列を返しますページには即座に名前のリストが表示されます。私はこのページにボタンを追加し、ボタンがクリックされた後にのみこのリストを表示したいと思います。

<div ng-app="searchApp" ng-controller="searchCtrl"> 
<form class="well form-search"> 
    <button type="submit" class="btn" ng-click="search()">Search</button> 
</form> 
    <table> 
     <tr ng-repeat="x in result"> 
     <td>{{ x }}</td> 
     </tr> 
    </table> 
</div> 

このフォームは現在存在しないsearch()関数を呼び出しています。代わりにコントローラを呼びたいと思います。

私は自分自身を非常に明確にしているかどうかわかりません。申し訳ありません。

+0

'$ http.get'コードをコントローラの' search'メソッドに入れることができます。 – gnerkus

答えて

1
//template (no form tag needed) 
<button type="button" class="btn" ng-click="search()">Search</button> 

//controller 
$scope.search = function(){ 
$http.get("server.php") 
    .then(function (response) 
    { 
     $scope.result = response.data; 
    }) 
    .then(function(response){ 
     console.log(response); 
    }) 
} 
+0

ありがとう、たくさん。まだ$スコープは何ですか? html要素ですか? –

+0

hmmm、簡単に言うと難しい、たとえばhttps://www.quora.com/What-is-scope-in​​-AngularJS-in-laymans-languageを確認してください – shershen

関連する問題