0
あるコントローラから別のコントローラにオブジェクトを渡す必要があり、thisソリューションを使用しましたが、動作しません。ここあるコントローラから別のコントローラへオブジェクトを渡す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;
}
}
});
は、第1の目的は、通過された図である:ここ
<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>
...
」私はオブジェクトを必要と第2のビュー
<html ng-app="customerApp">
<body ng-controller="CheckCtrl">
<div>
<h1>your balance is {{data.bal}}</h1>
....
最初のビューからの残高vm.details.Bal
は、data.bal
に表示する必要があります。 2番目のビューは表示されますが、何も表示されません。
サービスデータは、ページの読み込み間で保持されません。 [localStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage)を使用するか、[SPA](https://en.wikipedia.org/wiki/Single)を作成することを検討してください。 -page_application)を[ngRoute](https://stackoverflow.com/tags/ngroute/info)や[UI Router](https://stackoverflow.com/tags/angular-ui-router/info)などのルータと組み合わせると、 。 – georgeawg