我有用户的国家/地区选择下拉列表,其选择的值需要传递到提交按钮ng-click =“saveChanges()”函数。
这样做的正确方法是什么?我希望能够知道用户在该下拉菜单中选择了什么。
答案 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