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

回答編集履歴

1

修正

2017/04/30 13:54

投稿

akabee
akabee

スコア1947

answer CHANGED
@@ -2,4 +2,130 @@
2
2
  ご提示のソースコードをちょっと書き換えてみました。
3
3
  メニューページにてボタンを押すと、画面が遷移するようになっています。この動作はons-navigatorというコンポーネントを用いて実現しています。
4
4
 
5
+ ```HTML
6
+ <!DOCTYPE HTML>
7
+ <html>
8
+ <head>
9
+ <meta charset="utf-8">
10
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
11
+ <meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
12
+ <script src="components/loader.js"></script>
13
+ <script src="lib/angular/angular.min.js"></script>
14
+ <script src="lib/onsenui/js/onsenui.min.js"></script>
15
+ <script src="lib/onsenui/js/angular-onsenui.min.js"></script>
16
+
17
+ <link rel="stylesheet" href="components/loader.css">
18
+ <link rel="stylesheet" href="lib/onsenui/css/onsenui.css">
19
+ <link rel="stylesheet" href="lib/onsenui/css/onsen-css-components.css">
20
+ <link rel="stylesheet" href="css/style.css">
21
+
22
+ <script>
23
+ ons.bootstrap()
24
+ .controller('AppController', function($scope) {
25
+ this.load = function(page) {
26
+ $scope.splitter.content.load(page);
27
+ $scope.splitter.left.close();
28
+ };
29
+
30
+ this.toggle = function() {
31
+ $scope.splitter.left.toggle();
32
+ };
33
+ })
34
+
35
+ .controller("TestController",function(){
36
+ this.pushPage = function() {
37
+ myNavigator.pushPage("setting.html");
38
+ };
39
+ });
40
+
41
+ ons.ready(function() {
42
+ console.log("Onsen UI is ready!");
43
+ });
44
+ </script>
45
+ </head>
46
+ <body>
47
+
48
+ <ons-navigator var="myNavigator" page="mainmenu.html">
49
+
50
+ </ons-navigator>
51
+
52
+ <ons-template id="mainmenu.html">
53
+
54
+ <ons-splitter ng-controller="AppController as app" var="splitter">
55
+ <ons-splitter-side side="left" width="220px" collapse swipeable>
56
+ <ons-page>
57
+ <ons-list>
58
+ <ons-list-item ng-click="app.load('home.html')" tappable>
59
+ メニュー
60
+ </ons-list-item>
61
+ <ons-list-item ng-click="app.load('setting.html')" tappable>
62
+ 設定
63
+ </ons-list-item>
64
+ <ons-list-item ng-click="app.load('about.html')" tappable>
65
+ 詳細
66
+ </ons-list-item>
67
+ </ons-list>
68
+ </ons-page>
69
+ </ons-splitter-side>
70
+ <ons-splitter-content page="setting.html"></ons-splitter-content>
71
+ </ons-splitter>
72
+
73
+ </ons-template>
74
+
75
+
76
+
77
+ <ons-template id="home.html">
78
+ <ons-page ng-controller="TestController as test">
79
+ <ons-toolbar>
80
+ <div class="left">
81
+ <ons-toolbar-button ng-click="app.toggle()">
82
+ <ons-icon icon="md-menu"></ons-icon>
83
+ </ons-toolbar-button>
84
+ </div>
85
+ <div class="center">
86
+ メニュー
87
+ </div>
88
+ </ons-toolbar>
89
+ <a href="#">ここをクリックして他の表示を変えたい</a>
90
+ <ons-button ng-click="test.pushPage()">
91
+ pushPage
92
+ </ons-button>
93
+ </ons-page>
94
+ </ons-template>
95
+
96
+ <ons-template id="setting.html">
97
+ <ons-page>
98
+ <ons-toolbar>
99
+ <div class="left">
100
+ <ons-toolbar-button ng-click="app.toggle()">
101
+ <ons-icon icon="md-menu"></ons-icon>
102
+ </ons-toolbar-button>
103
+ </div>
104
+ <div class="center">
105
+ 設定
106
+ </div>
107
+ </ons-toolbar>
108
+ </ons-page>
109
+ </ons-template>
110
+
111
+ <ons-template id="about.html">
112
+ <ons-page>
113
+ <ons-toolbar>
114
+ <div class="left">
115
+ <ons-toolbar-button ng-click="app.toggle()">
116
+ <ons-icon icon="md-menu"></ons-icon>
117
+ </ons-toolbar-button>
118
+ </div>
119
+ <div class="center">
120
+ 詳細
121
+ </div>
122
+ </ons-toolbar>
123
+ </ons-page>
124
+ </ons-template>
125
+ </body>
126
+ </html>
127
+ ```
128
+
129
+
130
+
5
131
  画面遷移には、基本的にこのons-navigatorを用いるようにすると良いかと思います。