考虑以下代码;
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
被初始化时,它调用了fetchResults
3次
- 显式调用
- 为了
$watch('page')
- 为了
$watch('order')
我该怎么做才能在初始化时只ListCtrl
拨打fetchResults
一次电话?