web-dev-qa-db-fra.com

Quelle est la différence entre $ state.go (app.location) et $ location.path ("app/location")?

J'ai récemment commencé à utiliser le framework ionique, il contient js angulaire. Pour naviguer entre les écrans, j'utilisais $ location.path et cela fonctionnait très bien. Cependant, dans un exemple que j'ai téléchargé, j'ai vu que $ state.go était utilisé pour rediriger des pages. J'aimerais connaître la différence entre les deux. 

33

Le service $ location est intégré à la structure angular.js et vous permet de gérer un objet location (similaire à celui en JavaScript pur) . Le service $ state fait partie de ui-router module et vous permet de gérer les itinéraires en mode avancé, tout au long de la gestion des vues par une machine à états.

Si vous utilisez ui-router, vous devriez préférer utiliser le service $ state pour gérer les états/routes, car state abstrait le concept de route et vous pouvez modifier les routes physiques sans changer d'état.

En plus de cela, vous pourriez avoir plus de problèmes si vous couriez en mode hashbang , en particulier dans vos liens html. Dans ce cas, il est préférable d'utiliser ui-sref plutôt que ng-href (ou tout simplement href) . À mon avis, vous devriez toujours penser en termes d'états plutôt que de chemins. Évidemment, vous pouvez mélanger les services si vous savez ce que vous faites.

50
wilver

J'utilise ionic et l'une des différences que j'ai observées mais que je n'ai pas encore comprises est la raison pour laquelle $location.path est beaucoup plus lent que $state.go

0
Kunal