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

回答編集履歴

1

修正

2017/06/11 12:17

投稿

akabee
akabee

スコア1947

answer CHANGED
@@ -3,4 +3,113 @@
3
3
  ng-controllerすら利用していない段階では余計に混乱させてしまうかもしれませんが、お勧めなのはAngularJSのServiceを用いる方法です。
4
4
  各ページのng-controllerで値を受け渡すためのServiceを依存性注入し、各ページで共有したい値はそのServiceに設定しておくようにします。
5
5
 
6
- 具体例が欲しい場合は仰ってください。
6
+ 具体例が欲しい場合は仰ってください。
7
+
8
+ ■以下追記 具体的な動作例
9
+
10
+ index.html
11
+
12
+ ```html
13
+ <!DOCTYPE HTML>
14
+ <html ng-app="app">
15
+ <head>
16
+ <meta charset="utf-8">
17
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
18
+ <meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
19
+ <script src="components/loader.js"></script>
20
+ <script src="lib/angular/angular.min.js"></script>
21
+ <script src="lib/onsenui/js/onsenui.min.js"></script>
22
+ <script src="lib/onsenui/js/angular-onsenui.min.js"></script>
23
+
24
+ <link rel="stylesheet" href="components/loader.css">
25
+ <link rel="stylesheet" href="lib/onsenui/css/onsenui.css">
26
+ <link rel="stylesheet" href="lib/onsenui/css/onsen-css-components.css">
27
+ <link rel="stylesheet" href="css/style.css">
28
+
29
+ <script>
30
+
31
+ var app = angular.module("app",["onsen"])
32
+
33
+ angular.module("app")
34
+ .controller('page1Controller', function(shareService) {
35
+
36
+ this.test = function(){
37
+ alert(shareService.getTestValue())
38
+ }
39
+
40
+ });
41
+
42
+ angular.module("app")
43
+ .controller('page2Controller', function(shareService) {
44
+
45
+ this.testVaue = shareService.getTestValue()
46
+
47
+ this.test = function(){
48
+ shareService.setTestValue(this.testVaue)
49
+ }
50
+
51
+ });
52
+
53
+ angular.module("app")
54
+ .service("shareService", function() {
55
+ this.testValue = false
56
+
57
+ this.setTestValue=function(val){
58
+ this.testValue = val
59
+ }
60
+ this.getTestValue=function(){
61
+ return this.testValue
62
+ }
63
+ });
64
+
65
+ ons.ready(function() {
66
+ console.log("Onsen UI is ready!");
67
+ });
68
+ </script>
69
+ </head>
70
+ <body>
71
+
72
+ <ons-page>
73
+
74
+ <ons-tabbar>
75
+ <ons-tab label="Tab 1" page="page1Navi.html" active></ons-tab>
76
+ </ons-tabbar>
77
+
78
+ </ons-page>
79
+
80
+ </body>
81
+ </html>
82
+ ```
83
+ page1Navi.html
84
+ ```html
85
+ <ons-navigator var="page1Navi" page="page1.html">
86
+ </ons-navigator>
87
+ ```
88
+ page1.html
89
+ ```html
90
+ <ons-page ng-controller="page1Controller as page1C">
91
+ <ons-list id="pushList">
92
+ <ons-list-item ng-click="page1Navi.pushPage('page2.html')">test1</ons-list-item>
93
+ <ons-list-item ng-click="page1C.test()">alert</ons-list-item>
94
+ </ons-list>
95
+ </ons-page>
96
+ ```
97
+ page2.html
98
+ ```html
99
+ <ons-page ng-controller="page2Controller as page2C">
100
+ <ons-toolbar>
101
+ <ons-toolbar-button id="backButton" onclick="page1Navi.popPage()">
102
+ back
103
+ </ons-toolbar-button>
104
+ </ons-toolbar>
105
+
106
+ <ons-list>
107
+ <ons-list-item>
108
+ <ons-input type="checkbox" ng-model="page2C.testVaue" ng-change="page2C.test()">
109
+ </ons-input>
110
+ </ons-list-item>
111
+ </ons-list>
112
+ </ons-page>
113
+ ```
114
+
115
+