我初始化我的角度控制器用下面的代碼並沒有改變:
console.log($state.current);
$location.path('/newpath');
console.log($state.current);
的$ state.current變量不盡管路徑已經改變,但正在改變。我試過$scope.$apply()
但這給了我一個消化週期已經在進行中的錯誤。
請注意,這並不在我的測試工作,要麼:
it('should route /newpath to the newpath view', function() {
$location.path('/newpath');
$rootScope.$apply();
console.log($location.path());
console.log($state.current);
expect($state.current.templateUrl).to.equal('app/newpath/newpath.html');
});
這3行是否在你的控制器內?如果是的話,那麼在那裏執行的所有代碼只屬於當前狀態...只有當這個範圍被破壞...新的狀態將被啓動... –
是的,你是對的。我在我的控制器中使用全部三條線。但是如何做測試呢?我用我測試規範的代碼更新了我的questiog。 – zszep
但是不應該改變位置反映的狀態?目前我正在將角度路由轉換爲UI路由器。我已經通過$ location.path()設置新位置後,從原始的角度路由器代碼修改了此測試代碼,其中$ route.current.templateUrl已更改。 – zszep