Zmiana wartości na innej podstronie

0

Cześć,
chciałbym zmienić wartość zmiennej na innej stronie, niż ta w której wywołuje zmiane.

Mam prostą formę:

 <form data-ng-submit="changeValue()">

            <input  type="text"> </input> 

            <input  type="submit" class="button" value="Save"/>

            {{myvar}}
        </form>

funkcja w kontrolerze:

 $scope.changeValue=function () {
                $scope.myvar="abxcgsgfdgdf";
        }

i wszystko spoko, bo wartość {{myvar}} zmienia się, na stronie na której klikam button, ale na innej już nie..
co muszę zmienić, by na tej drugiej też się zmieniała?

Dzięki za pomoc

0

Czyli chodzi ci o to, że masz jeszcze innego htmla z innym kontrolerem? Jeśli tak, to jak sama nazwa wskazuje "scope" (zakres), ma zakres jedynie do swojego kontrolera. Innymi słowy, każdy kontroler ma swój zakres (swojego scope'a), więc $scope kontrolera A i $scope kontrolera B to zupełnie inne obiekty.

$scope'y dziedziczą jednak po tzw. $rootScopie i przypisanie do niego wartości, umożliwi przekazanie jej pomiędzy kontrolerami. Tutaj jest przykład:
http://stackoverflow.com/questions/12008908/angularjs-how-can-i-pass-variables-between-controllers
[post użytkownika Sanjeev]

0

Lepszą praktyką jest wykorzystanie serwisu do dzielenia danych (serwis wstrzykujesz w zależnościach do obu kontrolerów).
Tu masz dokładnie opisane jak to zrobić: https://thinkster.io/a-better-way-to-learn-angularjs/services

Warto też zastosować eventy (poczytaj o $on, $emit, $broadcast).
Przykład eventów znajdziesz chociażby tu:
http://stackoverflow.com/questions/14502006/working-with-scope-emit-and-on

1 użytkowników online, w tym zalogowanych: 0, gości: 1