我想将我的第一个视图文本框值传递给另一个视图文本框。 并且这两个视图都使用不同的控制器。
<!DOCTYPE html>
<html ng-app="myApp">
<head>
<title></title>
</head>
<body>
<div ng-view="">
</div>
</body>
</html>
<script src="../Scripts/angular.min.js"></script>
<script src="../Scripts/angular-route.min.js"></script>
<script src="../Scripts/routeApp.js"></script>
<script src="../Scripts/Controller.js"></script>
这是我将加载View1和view2 HTML文件的主页面。
&#34;视图1&#34;
<div>
<input type="text" name="fname" value="" ng-model="fname" />
<a href="#/View2" >Link</a>
</div>
&#34;视图2&#34;
<div>
<input type="text" name="fname" value="" ng-model="fname" />
</div>
&#34; routeApp.js&#34;
var myApp = angular.module('myApp', ['ngRoute', 'yourApp']);
debugger
myApp.config(['$routeProvider', function ($routeProvider) {
$routeProvider
.when('/',
{
templateUrl: 'View1.html',
controller: 'View1'
}).
when('/View2',
{
templateUrl: 'View2.html',
controller: 'View2'
}).
otherwise(
{
redirectTo: '/'
});
}]);
&#34; Controller.js&#34;
var yourApp = angular.module("yourApp",[]);
yourApp.controller("View1", function ($rootScope, $scope) {
debugger;
$rootScope.abc = $scope.fname;
});
yourApp.controller("View2", function ($rootScope, $scope) {
debugger;
$scope.fname = $rootScope.abc;
});
我的电话是来到控制器,但我知道我犯了一个错误,因为我没有在View2.html页面上获得我的价值。
答案 0 :(得分:0)
在分配$rootScope.abc = $scope.fname
时,$scope.fname
的值为undefined
。您需要在更改状态之前保存该值。您可以使用 $ destroy 事件来实现它:
$scope.$on("$destroy", function(){
$rootScope.abc = $scope.fname;
});
答案 1 :(得分:0)
“Controlle.js”的变化,现在它对我来说很好......
var yourApp = angular.module("yourApp",[]);
yourApp.controller("View1", function ($rootScope, $scope, $window) {
debugger;
$rootScope.abc = $scope.fname;
$scope.shareData = function () {
debugger;
$rootScope.abc = $scope.fname;
$window.location.href = "#/View2";
}
});
yourApp.controller("View2", function ($rootScope, $scope, $window) {
debugger;
$scope.fname = $rootScope.abc;
});