场景描述:
在page中有一个月份select下拉框,点击下拉框我们可以对应的月份
<select ng-model="month"></select>
在controller中,要根据选择的月份去后端获取对应的数据
$scope.$watch($scope.month, function(){
$http({ url:url,method:'GET',withCredentials:true
}).success(function(data,header,config,status){
// do something
})
});
我的思考:
假设页面中有多个下拉框,利用$watch一个个监视$scope变化,很不理想。有没有思路可以不使用$watch,当ng-model变化时,controller中自动发送http请求获取数据呢?
求高手指点~
$watch가 잘못 작성되었습니다:
으아악다음 방법도 매우 간단합니다.
으아악 으아악ng-change를 사용하면 성능이 더 좋아질 수도 있습니다. 위의 $watch()를 제거하는 것을 잊지 마세요:
으아악성능 차이는 기본적으로 무시할 수 있습니다. 이전에도 비슷한 테스트를 1초 내에 100만 번 실행한 적이 있습니다.
만약 그렇게 한다면 나중에 유지 관리가 편리한 $watch 방식을 사용하겠습니다. (ng-change 방식은 컨트롤러와 템플릿을 변경해야 하고 watch 방식은 컨트롤러만 변경하면 됩니다.)
드롭다운 상자는 일반적으로
명령을 사용하여 처리됩니다.ngChange
ngChangengChange가 최선의 선택입니다. 원칙적으로 청취 대기열을 가능한 적게 설정하세요. 그렇지 않으면 효율성이 매우 낮습니다.