考虑以下代码;
function ListCtrl($scope){
this.fetchResults = function(){};
// so I can pass this as a reference & spyOn fetchResults
function fetchResults = function(){return this.fetchResults()}.bind(this);
$scope.page = 1;
$scope.order = null;
$scope.$watch('page',fetchResults);
$scope.$watch('order',fetchResults);
this.fetchResults();
}
我想以这种方式编写这段代码,这样我就可以测试每个手表是否触发fetchResults. 但是这样,当ListCtrl被初始化时,它调用了fetchResults3次
- 显式调用
- 为了
$watch('page') - 为了
$watch('order')
我该怎么做才能在初始化时只ListCtrl拨打fetchResults一次电话?