$scope.watch не работает между двумя разными угловыми страницами
Приведенный ниже код работает на одной странице с разными контроллерами, но scope.watch не работает, когда я передаю значение с одной страницы на другую. Как ты можешь это сделать? ниже мой код.
.factory('Data', function () {
var data = {
LastName: '',
}
return {
getLastName: function () {
return data.LastName;
},
setLastName: function (lastname) {
data.LastName = lastname;
}
}
}
//FIRST CONTROLLER
$scope.lastname = '';
$scope.$watch('lastname', function (newValue2, oldValue2) {
if (newValue2 !== oldValue2)
Data.setLastName(newValue2);
});
//GET FIRST CONTROLLER INTO SECOND
$scope.$watch(function () {
return Data.getLastName();
}, function (newValue2, oldValue2) {
if (newValue2 !== oldValue2)
$scope.lastname = newValue2;
});
//form
//Firstcontroller
< input type = "text"
name="lastname"
placeholder = "Suhr"
ng-model="lastname"
ng-minlength="3" required />
1 ответ
Портируем весь ваш код и все работает!
angular.module("test", [])
.controller('Test1', Test1)
.controller('Test2', Test2)
.factory('Data', Data);
function Test1($scope, Data) {
$scope.lastname = '';
$scope.$watch('lastname', function(newValue2, oldValue2) {
if (newValue2 !== oldValue2)
Data.setLastName(newValue2);
});
}
function Test2($scope, Data) {
$scope.$watch(function() {
return Data.getLastName();
}, function(newValue2, oldValue2) {
if (newValue2 !== oldValue2)
$scope.lastname = newValue2;
});
}
function Data() {
var data = {
LastName: '',
}
return {
getLastName: function() {
return data.LastName;
},
setLastName: function(lastname) {
data.LastName = lastname;
}
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<div ng-app="test">
<div ng-controller="Test1">
<input type="text" name="lastname" ng-model="lastname" placeholder="Suhr" ng-minlength="3" required>
</div>
<div ng-controller="Test2">
{{lastname}}
</div>
</div>