Послуга буде працювати, але логічним способом зробити це, використовуючи лише звичайні області та контролери, є налаштування контролерів та елементів так, щоб вона відображала структуру вашої моделі. Зокрема, вам потрібен батьківський елемент і контролер, які встановлюють батьківський обсяг. Окремі сторінки форми повинні знаходитись у поданні, яке є дочірнім для батьків. Батьківська область зберігається навіть під час оновлення дочірнього подання.
Я припускаю, що ви використовуєте ui-маршрутизатор, щоб ви могли мати вкладені іменні подання. Потім у псевдокоді:
<div ng-controller="WizardController">
<div name="stepView" ui-view/>
</div>
Потім WizardController визначає змінні області, які ви хочете зберегти на етапах багатосторінкової форми (яку я називаю "майстром"). Тоді ваші маршрути оновлюватимуться stepView
лише. Кожен крок може мати власні шаблони, контролери та області, але їх сфери втрачаються від сторінки до сторінки. Але сфери застосування у WizardController зберігаються на всіх сторінках.
Щоб оновити обсяги WizardController від дочірніх контролерів, вам потрібно використовувати синтаксис типу $scope.$parent.myProp = 'value'
або визначити функцію setMyProp
в WizardController для кожної змінної області. В іншому випадку, якщо ви спробуєте встановити батьківські змінні області безпосередньо з дочірніх контролерів, ви в кінцевому підсумку просто створите нову змінну області для самого дочірнього елемента, затінюючи батьківську змінну.
Це важко пояснити, і я перепрошую за відсутність повного прикладу. В основному вам потрібен батьківський контролер, який встановлює батьківський обсяг, який буде збережений на всіх сторінках вашої форми.