teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2018/05/18 05:51

投稿

akabee
akabee

スコア1947

answer CHANGED
@@ -3,12 +3,13 @@
3
3
  最も単純な方法としては、以下のようにグローバル変数(以下の例ではvar = testVar)を用意しておいて、そこに遷移元のControllerで値を設定し、遷移先のControllerで参照するという方法です。
4
4
 
5
5
  ```JavaScript
6
- var testVar = [];
7
-
8
6
  var app = angular.module('myApp', []);
9
7
 
10
8
  //遷移元コントローラー
11
- app.controller('AppController', function($scope) {
9
+ app.controller('AppController', function($scope,GlobalService) {
10
+
11
+ var testVar = [];
12
+
12
13
  $scope.fruits = [
13
14
  {id: 1, name: 'リンゴ'},
14
15
  {id: 2, name: 'バナナ'},
@@ -24,18 +25,21 @@
24
25
  testVar.push(value.name);
25
26
  console.log(value.name);
26
27
  }
27
- //$scope.testVar = testVar; //これは不要
28
+ GlobalService.testVar = testVar;
28
29
  });
29
30
  };
30
31
  };
31
32
 
32
33
  //遷移先コントローラー
33
- app.controller('NewAppController', function($scope) {
34
+ app.controller('NewAppController', function($scope,GlobalService) {
34
-
35
- var getTestVar = testVar //受け取り
35
+ $scope.testVar = GlobalService.testVar;
36
-
37
- //$scope.testVar;
38
36
  });
37
+
38
+
39
+ //遷移先コントローラー
40
+ app.service('GlobalService', function() {
41
+ this.testVar;
42
+ });
39
43
  ```
40
44
 
41
45
  私個人としては、画面遷移時の変数共有のためのServiceを用いて値の共有を行っています。

1

コード修正

2018/05/18 05:51

投稿

akabee
akabee

スコア1947

answer CHANGED
@@ -3,10 +3,12 @@
3
3
  最も単純な方法としては、以下のようにグローバル変数(以下の例ではvar = testVar)を用意しておいて、そこに遷移元のControllerで値を設定し、遷移先のControllerで参照するという方法です。
4
4
 
5
5
  ```JavaScript
6
- var testVar;
6
+ var testVar = [];
7
7
 
8
- angular.module('myApp', [])
8
+ var app = angular.module('myApp', []);
9
+
10
+ //遷移元コントローラー
9
-   .controller('AppController', function($scope) {
11
+ app.controller('AppController', function($scope) {
10
12
  $scope.fruits = [
11
13
  {id: 1, name: 'リンゴ'},
12
14
  {id: 2, name: 'バナナ'},
@@ -16,16 +18,24 @@
16
18
  ];
17
19
 
18
20
  $scope.check = function() {
19
- var food = [];
21
+
20
22
  angular.forEach($scope.fruits, function(value, index, array) {
21
23
  if (value.checked) {
22
- food.push(value.name);
24
+ testVar.push(value.name);
23
25
  console.log(value.name);
24
26
  }
25
- $scope.foods = food;
27
+ //$scope.testVar = testVar; //これは不要
26
28
  });
27
- }
29
+ };
28
- }
30
+ };
31
+
32
+ //遷移先コントローラー
33
+ app.controller('NewAppController', function($scope) {
34
+
35
+ var getTestVar = testVar //受け取り
36
+
37
+ //$scope.testVar;
38
+ });
29
39
  ```
30
40
 
31
41
  私個人としては、画面遷移時の変数共有のためのServiceを用いて値の共有を行っています。