0

HomeController의 범위 변수의 업데이트 된 값을 UserLoginController로 가져 오려고합니다. 여기에서 나는 양식을하고 난 다음 페이지로 이름을 액세스 할

//controllers 
 

 
var app = angular.module('myApp', ['ngRoute']); 
 

 
app.config(function($routeProvider){ 
 
\t 
 
\t $routeProvider 
 
\t .when('/', { 
 
\t \t templateUrl : 'pages/home.html', 
 
\t \t controller : 'HomeController' 
 
\t }) 
 
\t .when('/userlogin', { 
 
\t \t templateUrl : 'pages/userlogin.html', 
 
\t \t controller : 'UserLoginController' 
 
\t }) 
 
\t .when('/verifyuser', { 
 
\t \t templateUrl : 'pages/verifyUser.html', 
 
\t \t controller : 'VerifyUserController' 
 
\t }) 
 
\t .otherwise({redirectTo: '/'}); 
 
}); 
 

 
app.controller('VerifyUserController', function($scope, $rootScope){ 
 
\t $scope.message = "Hello from VerifyUserController"; \t \t 
 

 
}); 
 

 

 
app.controller('UserLoginController', ['$scope', 'User', function($scope, User){ 
 
\t $scope.message = "Hello from HiController"; 
 
\t $scope.name = User.get(); 
 
\t console.log("Hello " + $scope.name); 
 
\t 
 
}]); 
 

 
app.controller('HomeController', ['$scope', 'User', function($scope, User){ 
 
\t $scope.message = "Hello from HomeController"; 
 
\t $scope.uname = User.get(); 
 
\t $scope.$watch('uname', function(v){ 
 
\t  $scope.uname = v; 
 
\t  User.set(v); 
 
\t }); 
 
\t $scope.m = function(){ alert(User.get())}; 
 
\t 
 
\t 
 
}]); 
 

 
app.factory('User', function ($rootScope) { 
 
    var savedData = { 
 
    \t \t user: 'abhishek' 
 
    }; 
 
    function set(data){  \t 
 
    \t savedData.user = data;  \t 
 
    } 
 
    function get(){ 
 
    \t return savedData.user; 
 
    } 
 
    return { 
 
    \t set: set, 
 
    \t get: get 
 
    } 
 
}); 
 

 

 
<!--home.html--> 
 

 
<form name="myForm" action="http://127.0.0.1:8081/varifyUser" method="post"> 
 
\t \t <input type="text" id="uname" name="uname" ng-model="uname" placeholder="Username" required><span style="color:red" ng-show="myForm.uname.$dirty && myForm.uname.$invalid"> 
 
<span ng-show="myForm.uname.$error.required">Username is required.</span></span> \t \t \t \t \t 
 
     <input type="password" id="psw" name="psw" ng-model="psw" placeholder="Password" required><span style="color:red" ng-show="myForm.psw.$dirty && myForm.psw.$invalid"> 
 
<span ng-show="myForm.psw.$error.required">Name is required.</span></span> 
 
\t \t <input type="submit" ng-click="m()" ng-disabled="myForm.uname.$dirty && myForm.uname.$invalid || myForm.psw.$dirty && myForm.psw.$invalid" id="login" name="login" class="login loginmodal-submit" value="Login"> 
 
</form>

나는 "abhishek"이전 값을 받고 있어요하지만 사용자 이름 필드를 편집 한 후 업데이트 된 값이 반영되지 않습니다 으로 돌아 가기 사용자 로그인 관리자. 그러나 나는 HomeController에 업데이트 된 값을 받고 있습니다. 그래서, 내 질문에 어떻게 UserLoginController 입력 양식의 업데이트 된/수정 된 값을 얻을 수 있습니까?

나는 서비스를 시도했지만 액세스 할 수 있도록 방송했지만 아무도 작동하지 않았습니다.

답변

0

잘 작동하는 것 같습니다. 샘플은 demo입니다.

제출 후 로그인 컨트롤러로 직접 연결되며 값이 업데이트됩니다. 각도 및 라우터 버전이 호환되는지 확인하십시오. 시계 값을 지정 사용

<script data-require="[email protected]" data-semver="1.6.1" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.js"></script> 
<script data-require="[email protected]" data-semver="1.4.3" src="https://code.angularjs.org/1.4.3/angular-route.js"></script> 

하나 더 thing.Instead는 제출 함수 내에서 서비스를 제공합니다. 그렇지 않으면 서비스 할 불필요한 호출이있을 수 있습니다.

+0

** ** form ** 요소의 action 속성을 제거한 다음 HomeController에서 '$ location.url ('/ userlogin ')'을 추가하는 경우에만. 나는 원하는 결과를 얻었다. 하지만 이렇게하면 다음 ** 페이지가 사용 중지됨 **으로 표시됩니다. 즉, 링크를 클릭 할 수 없습니다. –

+0

'/ userlogin' 페이지의 소스 코드를 검사하고'

'을 찾았습니다. 자동 추가됩니다. 결과 페이지가 사용 중지되었습니다. –