举例来说,在下Views/Index.cshtml
,我有一个带有一些输入的表单,一旦填写并提交,就通过控制器js文件中的一个函数,然后window.location.pathname
重定向到另一个页面。下一页与另一个controller / js文件相关联。
我如何将几个变量从一个传递到另一个?
我已经尝试过这种方式,但它不起作用:
第一次尝试
_Layout.cshtml
:
<html ng-app="MIScheduler">
<head>
...
</head>
<body>
@RenderBody()
// AngularJS scripts
<script src="app.js"></script>
</body>
</html>
Index.cshtml
:
<input ng-model="userID" name="userID" />
<input ng-model="userEmail" name="userEmail" />
<input type="submit" id="submit" />
@section scripts {
<script src="HomeController.js"></script>
}
HomeController.js
:
var CID = null;
var Email = null;
$scope.submit = function() {
CID = $scope.userID;
Email = $scope.userEmail;
window.location.pathname = 'Home/OtherPage';
};
然后,当重定向到OtherPage.cshtml
:
{{cid}}
{{email}}
@section scripts {
<script src="OtherPageController.js"></script>
}
如果我的话不输出任何东西OtherPageController.js
:
$scope.cid = CID;
$scope.email = Email;
我还尝试app.js
过在其中实现服务并将服务传递给两个控制器,但是这种方式也没有任何输出。
第二次尝试
这是我尝试的第二种方法app.js
:
angular.module('moveinScheduler', [])
.service('ShareUserInfo', function () {
LData = {
cid: '',
email: ''
}
return {
getValues: function () {
return LData;
},
setValues: function (cid, email) {
LData.cid = cid;
LData.email = email;
}
};
});
Index.cshtml
与上面相同。HomeController.cshtml
:
var CID = null;
var Email = null;
$scope.submit = function() {
ShareUserInfo.setValues(d.data.CID, d.data.Email);
window.location.pathname = 'Home/OtherPage';
};
OtherPageController.js
:
$scope.values = ShareUserInfo.getValues();
OtherPage.cshtml
:
{{values}}
什么也没有输出。请记住,对于这两个控制器,我正在将ShareUserInfo
其作为服务扩展传递给函数。
有什么问题的想法吗?为什么我的值没有被存储/传递?
您可以将数据保存在Window.localStorage中:
HomeController.js:
angular.controller('ExampleController', function($scope) {
$scope.submit = function() {
var obj = {
cid: $scope.userID,
email: $scope.userEmail
};
localStorage.setItem('data', JSON.stringify(obj));
// Make your redirect
};
});
PageController.js:
angular.controller('PageController', function($scope) {
var data = JSON.parse(localStorage.getItem('data'));
console.log('data: ', data);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句