如何将下拉选择值传递给控制器​​中的按钮单击功能?

时间:2016-03-24 18:37:24

标签: javascript angularjs angularjs-directive

我有用户的国家/地区选择下拉列表,其选择的值需要传递到提交按钮ng-click =“saveChanges()”函数。

这样做的正确方法是什么?我希望能够知道用户在该下拉菜单中选择了什么。

2 个答案:

答案 0 :(得分: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标记并对按钮进行更改:

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

你必须明白ng模型会在现场绑定值。因此,您可以轻松地在段落中打印该值。通过更改下拉列表,打印值将自动更改。

总的来说,我建议首先尝试使用官方AngularJS documentation。根据我的经验,我设法通过首先阅读来解决许多问题。

答案 1 :(得分:0)

如果您需要在选择框更改后提交表单,请将if ($model->column_name->isPast()) 事件绑定到将调用提交函数的选择:

ngChange