Dịch vụ sẽ hoạt động, nhưng một cách hợp lý để thực hiện nó chỉ bằng cách sử dụng các phạm vi và bộ điều khiển thông thường là thiết lập bộ điều khiển và phần tử của bạn để nó phản ánh cấu trúc mô hình của bạn. Đặc biệt, bạn cần một phần tử cha và bộ điều khiển thiết lập phạm vi cha. Các trang riêng lẻ của biểu mẫu phải nằm trong chế độ xem là trang con đối với trang chính. Phạm vi chính vẫn tồn tại ngay cả khi chế độ xem con được cập nhật.
Tôi giả sử bạn đang sử dụng ui-router để bạn có thể có các khung nhìn được đặt tên lồng nhau. Sau đó, trong mã giả:
<div ng-controller="WizardController">
<div name="stepView" ui-view/>
</div>
Sau đó, WizardController xác định các biến phạm vi mà bạn muốn duy trì qua các bước của biểu mẫu nhiều trang (mà tôi đang đề cập đến như một "trình hướng dẫn"). Sau đó, các tuyến đường của bạn sẽ stepView
chỉ cập nhật . Mỗi bước có thể có các mẫu, bộ điều khiển và phạm vi riêng, nhưng phạm vi của chúng bị mất từ trang này sang trang khác. Nhưng phạm vi trong WizardController được giữ nguyên trên tất cả các trang.
Để cập nhật phạm vi WizardController từ bộ điều khiển con, bạn sẽ cần sử dụng cú pháp như $scope.$parent.myProp = 'value'
hoặc xác định một hàm setMyProp
trên WizardController cho mỗi biến phạm vi. Ngược lại, nếu bạn cố gắng đặt các biến phạm vi cha trực tiếp từ bộ điều khiển con, thì cuối cùng bạn sẽ chỉ tạo một biến phạm vi mới trên chính con, che khuất biến cha.
Hơi khó giải thích và tôi xin lỗi vì thiếu một ví dụ đầy đủ. Về cơ bản, bạn muốn một bộ điều khiển cha thiết lập phạm vi cha, phạm vi này sẽ được giữ nguyên trên tất cả các trang trong biểu mẫu của bạn.