2016-04-04 6 views
0

に入力フィールドの値を取得するにはこれがあるどのように私はそれは常に未定義です私のコントローラに入力フィールドの値を取得しようとすると、それは2結合angularJSように見えるangularJSコントローラ

が動作していませんangularJSコード

app.controller('MainCtrl', $scope) 
    { 
     var quan = $scope.quantity; 
     alert(quan); 
    } 

HTML

<form ng-controller="MainCtrl" class="form-inline" role="form" padding-left:10em"> 

     <input type="text" class="form-control" id="quantity" ng-model="quantity" /> 

    </form> 

は、私は私のコントローラに入力の値を取得することはできません。 ありがとうございました!

答えて

0

まず、構文が正しくありません。hadiJZの回答を参照してください。次に、コントローラーは作成後に一度呼び出されるため、後でテキストを変更すると別の時間にアラートが表示されなくなります。

+0

コントローラの値はどのように取得できますか? –

+0

値をどこから得るかによって異なります。 元のデータは、あなたが時計使用することができ、範囲内にある場合: $の範囲を$見る(関数(changedValue、previousValue)、 'の値' { ... changedValue で何かを行います});。 $ scope内で値が変更されると、時計は自動的に起動します。 これはng-changeを利用することですが、これは値に書き込む特定の要素(あなたの場合は入力フィールド)が1つだけある場合、またはすべての要素が変更関数を呼び出す場合にのみ有効です。 –

0

これをコントローラに追加すると、入力値を変更するたびに警告が表示されます。

$scope.$watch(function() { 
     return $scope.quantity; 
    }, function(quantity) { 
     alert(quantity); 
    }); 
0

私のために働くアプローチが見つかりました。

これは、角

$scope.changedValue = function (item,quan) 
    { 

     if (item != null && quan !=null) 
     { 

      $http.get('/api/product/'+ item).success(function (data) 
      { 

       $scope.amount = parseFloat(data.price * quan); 

      }); 

     } 
    } 

あるとAngularJSからフィールドの値を取得するために、HTML

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
<div ng-app="myApp" ng-controller="myCtrl"> 
    <form class="form-inline" > 

     <input type="text" class="form-control" id="quantity" ng-model="quantity" /> 
     <select class="form-control" id="selected_id" ng-model="selected_id" ng-options="c.Value as c.Text for c in pcategoryA" 
             ng-change="changedValue(selected_id,quantity)"> 
    </form> 
</div> 
0

で、あなたはこのようにそれにIDが設定されている必要があります:

AngularJSでは、これを実行して値を取得します。

$ scope.RandomValue = angle.element( '#RandomValue')。val();

関連する問題