Різниця між $ state.transitionTo () і $ state.go () в кутовому ui-роутері


108

У AngularJS я бачу, що іноді ми використовуємо, $state.transitionTo()а іноді і використовуємо $state.go(). Хтось може мені сказати, чим вони відрізняються і коли один слід використовувати над іншим?

Відповіді:


151

Ви маєте на увазі маршрутизатор AngularUI ? Якщо так, у вікі вказуються відмінності :

$ state.go (до [, toParams] [, параметри])

Повертає Обіцянку, що відображає стан переходу.

Зручний спосіб переходу до нового стану. $state.goдзвінки $state.transitionToвнутрішньо, але автоматично встановлює параметри на { location: true, inherit: true, relative: $state.$current, notify: true }. Це дозволяє легко використовувати абсолютний або відносний шлях і вказати лише ті параметри, які ви хочете оновити (дозволяючи невказані параметри успадковувати від поточного стану).


$ state.transitionTo (до, toParams [, параметри])

Повертає Обіцянку, що відображає стан переходу.

Низькорівневий метод переходу до нового стану. $state.go()використовує transitionToвнутрішньо. $state.go()рекомендується в більшості ситуацій.


1
Я знайшов потрібну мені інформацію за вашими даними посиланнями. Дякую Брендону :)
Барселона

1
Мабуть, значення, введені у подання, не змиваються, якщо я повторно запускаю подання за допомогою переходуTo. У будь-якому випадку ми можемо змусити оновити значення / js / view? PS - Перезавантаження сторінок не є варіантом, оскільки перегляд є накладкою
Swanidhi

10

$state.transitionToтранзит до нової держави. У більшості випадків вам не доведеться користуватися ним, можливо, ви віддаєте перевагу$state.go .

Він бере деякі параметри optionsоб'єкта:

  • location: Якщо trueбуде оновлено URL-адресу в рядку розташування, якщо falseне буде. Якщо рядок "replace", буде оновлено URL, а також замінить останній запис історії.
  • inherit: Якщо trueбуде успадковано параметри URL від поточного URL.
  • relative (stateObject, за замовчуванням null) : Під час переходу з відносним шляхом (наприклад, '^') визначає, до якого стану відносно.
  • notify: Якщо true, буде трансляція $stateChangeStartта $stateChangeSuccessподії.
  • reload: Якщо trueбуде примусово переходити, навіть якщо стан або парами не змінилися, це також перезавантаження того ж стану.

$state.goце свого роду ярлик, який дзвонить $state.transitionToіз типовими параметрами:

  • location: true
  • inherit: true
  • relative: $state.$current
  • notify: true
  • reload: false

Це зручніше, оскільки синтакс простіший. Ви можете назвати його лише іменем штату.

$state.go('home');
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.