我有选择框,我在其上调用了ng-change上的函数,但不知道它在页面加载时运行的原因。我不希望该功能在加载时调用。我认为这不是ng-change的基本行为。
<select class="form-control" name="state" id="state_id" ng-model="form.state" ng-change="getStateList(form.state)">
<option value="">Select State</option>
<option ng-repeat="states in state" value="{{states.state_id}}" ng-selected="states.state_id == form.state_id"> {{states.name}} </option>
</select>
并且在控制器中我的功能为
$scope.getStateList = function(id) {
$http.post('/statelist',{id:id}).then(function success(response) {
$scope.state = response.data.state;
});
}
我在不同的呼叫上加载$scope.city
。但是当我加载页面时,两个函数都被调用,因为$scope.getStateList
应该在选择框中的chnage上调用。怎么了?
还有一个问题是ng-select也没有用。
答案 0 :(得分:-1)
更改ng-model="states.state_id" ng-change="getStateList(states.state_id)"
你想在ng-change事件中传递状态id使用这个并尝试..另外,你发送整个范围值意味着发送范围,其中u decalre in ng-repeat