Angular Js ng-change函数在加载时运行

时间:2017-09-18 06:24:14

标签: angularjs

我有选择框,我在其上调用了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也没有用。

1 个答案:

答案 0 :(得分:-1)

更改ng-model="states.state_id" ng-change="getStateList(states.state_id)"你想在ng-change事件中传递状态id使用这个并尝试..另外,你发送整个范围值意味着发送范围,其中u decalre in ng-repeat