[英]Passing Object from One Controller to Another AngularJS
我需要將一個對象從一個控制器傳遞到另一個控制器,並且已經使用了此解決方案,但是它無法正常工作。
這里的代碼:
angular.module("customerApp", [])
.controller('MainCtrl', function ($scope, myService, $http, $location) {
var vm = this;
vm.pinFormCheck = function () {
vm.count++;
if (vm.pinForm.$valid && vm.details.PIN === vm.pin && vm.count <= 2) {
location.href = "http://localhost:51701/Home/MainMenu";
$scope.obj = {
'cid': 'vm.details.CID',
'name': 'vm.details.Name',
'pin': 'vm.details.PIN',
'bal': 'vm.details.Bal',
'status': 'vm.details.cardStatus'
};
console.log(vm.details.Bal);//the correct balance get displayed in console
} else {
vm.failPin = true;
}
};
})
.controller('CheckCtrl', function ($scope, myService) {
$scope.data = myService.getObj();
})
.factory('myService', function () {
var obj = null;
return {
getObj: function () {
return obj;
},
setObj: function (value) {
obj = value;
}
}
});
這是傳遞第一個對象的視圖:
<body ng-app="customerApp">
<div ng-controller="MainCtrl as vm">
<form name="vm.pinForm">
<input type="password" ng-model="vm.pin" ng-required="true" />
<p><button ng-disabled="vm.count >=3" ng-click="vm.pinFormCheck();" ng-init="vm.count=0">Proceed</button></p>
</form>
...
這是我需要對象的第二個視圖
<html ng-app="customerApp">
<body ng-controller="CheckCtrl">
<div>
<h1>your balance is {{data.bal}}</h1>
....
從資產負債vm.details.Bal
從第一個視圖必須出現在data.bal
在第二種觀點,但沒有什么是出現。
您可以將vm.details保存在某些工廠中。 然后從此工廠在CheckCtrl
獲取它。 AngularJS中的工廠實現單例模式。 因此,保存的數據將一直保留到您的應用存在為止。
您試圖做下一件事myService.getObj();
但是您沒有將任何內容保存到服務中。
將myService
注入MainCtrl
,然后將詳細信息保存到其中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.