2016-04-20 5 views
1

どの角度角度で使用する方が良いですか?$locationまたはwindow.locationです。

たとえば、$location.path()またはwindow.location.hrefを同じ作業に使用できます。どちらが適していますか?

誰でもお勧めできますか?

+1

'$のlocation'は** window.locationのためのラッパー** angularjsです。 ** angularJS **はUIに変更を加えるための変更検出技術に大きく依存しています。 Angularは、$ scopeなどの角度のあるオブジェクトに対して行うすべての変更に対してダイジェストサイクルを実行することでこれを行います。 window.locationを直接使用すると、angleはその時点で変更を検出できなくなります。したがって、$ locationを使用します。これは、内部的にwindow.locationを使用し、ダイジェストサイクルを呼び出します。 この方法では、場所の変更が瞬時に更新されます。 –

答えて

2

$locationを使用して、AngularJSが行っている変更を認識できるようにしてください。 window.locationを直接操作すると、AngularJSはそれを認識せず、次のダイジェストサイクルが他のAngularJSメソッドによって呼び出されるまで変更は行われません。実際にはこれはAngularJSは角アプリ(すなわちNOルート定義される)の外側の位置については、あなたのangularjsアプリのルートを使用$location.path("yourroute");または$location.url('/RouteTo/');

に場所について$timeoutのようなネイティブメソッドのラッパー、$intervalなど

0

を持っている理由の1つです、昔ながらのJavaScriptが機能します:

window.location = "http://www.domain.com/login"

関連する問題