ナビゲートするとページがちらつくので、Angular は変更に気づき、ページを更新しようとしています。
問題は、 $location.path() にリスナーを追加するディレクティブ.jsのように見えます
scope.$watch('location.path()', function (newPath) {...});
ここでの議論によると、使用したい
$scope.$watch(function() {return location.path()}, function(path) {...});
おそらく $location.path() への呼び出しがルーティングに干渉しています。
編集
以下はそれを説明するかもしれません:
services.factory('pageData', ['$resource', '$route',
function ($resource, $route) {
// this is done so I can run the e2e tests from the :8000 port
//debugger;
var slug = ($route.current.params.slug || 'home') + '.txt';
return $resource('http://arunmahendrakar.com/nsm/data/:slug', { slug: slug });
}]);
services.factory('pageDataLoader', ['pageData', '$q',
function (pageData, $q) {
return function () {
var delay = $q.defer();
pageData.query(function (pData) {
delay.resolve(pData);
}, function () {
delay.reject('Unable to fetch data');
});
return delay.promise;
};
}]);
pageData ファクトリは $resource オブジェクトを返します。これは、ページの読み込み時に一度だけ呼び出されます。pageDataLoader ファクトリは関数を返します。この関数は、pageDataLoader がインスタンス化されるたびに呼び出されます。