2016-03-24 7 views
-5

私はユーザーの国選択ドロップダウンを持っています。選択された値を送信ボタンng-click = "saveChanges()"に渡す必要があります。コントローラのボタンクリック機能にドロップダウン選択値を渡すにはどうすればよいですか?

これを行う適切な方法は何ですか?ユーザーがそのドロップダウンで選択した内容を知りたい。

+0

いくつかのコードを表示してください。あなたはこれまで何をしていますか?達成したいことは何ですか? – v1shnu

+0

ドロップダウンのng-model値を使用 – shreyansh

+1

Angularjsアプリケーション内で 'onClick'関数を使用しているという事実は、角度の仕組みがわからないことを意味します –

答えて

0

私はAngularJSの例をコピーしました。 ng-model属性を使用する必要があります。これは、あなたがコントローラから変数に値をバインドすることができます:

HTMLコード:

<div ng-controller="ExampleController"> 
    <form name="myForm" ng-submit="submit()"> 
    <label for="repeatSelect"> Repeat select: </label> 
    <select name="repeatSelect" id="repeatSelect" ng-model="data.repeatSelect"> 
     <option ng-repeat="option in data.availableOptions" value="{{option.id}}">{{option.name}}</option> 
    </select> 
    <input type="submit" id="submit" value="Submit" /> 
    </form> 
    <hr> 
    <tt>repeatSelect = {{data.repeatSelect}}</tt><br/> 
</div> 

コントローラクラス:

angular.module('ngrepeatSelect', []) 
    .controller('ExampleController', ['$scope', function($scope) { 
    $scope.data = { 
    repeatSelect: null, 
    availableOptions: [ 
     {id: '1', name: 'Option A'}, 
     {id: '2', name: 'Option B'}, 
     {id: '3', name: 'Option C'} 
    ], 
    }; 
    $scope.submit = function() { 
    // Logic to handle onClick action by pressing the Button. 
    // The ng-model=repeatSelect saved your information to the 
    // variable repeatSelect. 
    var selectValue = $scope.data.repeatSelect; 
    // Do something with selectValue variable 
    } 
}]); 

それともng-clickメソッドを使用したい場合は、代わりに、HTML formを使用してください。そして、あなたは全体のform HTMLタグを削除する必要があり、ボタンに変更作られます:あなたはNG-モデルはその場で値を結合することを理解する必要が

<input type="submit" id="submit" value="Submit" ng-click="$scope.submit()" /> 

を。したがって、その値を段落に簡単に印刷することができます。ドロップダウンを変更すると、印刷された値が自動的に変更されます。

一般的には、最初に公式で試してみることをお勧めします。私の経験では、まずそれを読むことで多くの問題を解決することができます。

+0

submitSelect関数のrepeatSelectにはどうやってアクセスしますか? – JsLearner

+0

これは 'var value = $ scope.data.repeatSelect;'のようになります。これはバインドされた値をvalueに代入するか、単に '$ scope.data.repeatSelect'でそのまま使用します。 –

+0

完全な[example](https://docs.angularjs.org/guide/scope)があります。これは、スコープから値を取得する方法を示しています。かなりストレートです。 –

0

あなたが選択ボックスが変更された後、フォームを送信提出する関数を呼び出しますその選択にngChangeイベントをバインドする必要がある場合:

<select ng-model="myModel" ng-change="saveChanges()" ng-options="...."> 
関連する問題