LoginSignup
0
0

More than 5 years have passed since last update.

[monaca][onsenui][AngularJS][ui-router]onsenui/ui-router最小限プロジェクト

Last updated at Posted at 2017-09-21

monacaでonsenuiとui-routerを同時に導入するには、ちょっとひと手間かかるので、最低限プロジェクトの構成方法を手順化してみました。

ui-routerだけ導入した場合

「Onsen UI V2 Angular 1 Minimum」に「angular-ui-router」だけ導入すると、以下エラーが発生します。

minimum01.png

原因)

index.html
  <script src="components/loader.js"></script>
  <script src="lib/angular/angular.min.js"></script>
  <script src="lib/onsenui/js/onsenui.min.js"></script>
  <script src="lib/onsenui/js/angular-onsenui.min.js"></script>

javascriptの読み込み順が、本来読み込まれるべき順番と異なるため(だと思います)
loader.jsには、「Cordova (PhoneGap) Loader」等、最初に読み込まれるべきライブラリが入っているため、後に持ってくることはできません。

onsenui/ui-routerプロジェクトの作成方法

1. 新規プロジェクト作成

「Onsen UI V2 JS Minimum」を選択し、新規プロジェクトを作成します。

minimum02.png

2. angularjsのcomponents導入

「JS/CSSコンポーネント」から「angular」を検索し、追加します。

minimum05.png

minimum09.png

バージョンは、2017/09/21時点で「1.6.6」が導入可能な最新バージョンです。
build-xxxというのは導入できません。

minimum10.png

導入するファイルは1件

  • components/angular/angular.js

※min.jsは最適化、圧縮されているらしく、ログがまず出てきません。
 構築時には、min抜きのjsファイルを読み込んだ方がログが確認できて便利です。
 (以下同様)

minimum12.png

3. onsenuiのcomponents導入

「onsenui」を検索し、「追加」します。
#「Onsen UI (Monaca Version)」は違いがよく分からなかったので導入してません。

minimum04.png

loading09.png

loading10.png

jsとcssの計4件をチェックし、保存します。

  • components/onsenui/js/angular-onsenui.js
  • components/onsenui/js/onsenui.js
  • components/onsenui/css/onsen-css-components.css
  • components/onsenui/css/onsenui.css

4. lib設定の削除

componentsのonsenuiを反映させるため、lib関連の設定を削除します。

4.1. libディレクトリの削除

libディレクトリを削除します。

minimum03.png

4.2. index.htmlのlib読み込み設定削除

index.htmlのlib以下読み込み設定も削除します。

index.html
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
  <script src="components/loader.js"></script>

  <link rel="stylesheet" href="components/loader.css">
  <link rel="stylesheet" href="css/style.css">

  <script>
    ons.ready(function() {
      console.log("Onsen UI is ready!");
    });
  </script>
</head>
<body>
  This is a template for Onsen UI app.

  <ons-button>BUTTON</ons-button>
</body>
</html>

この時点で、エラーは出ていません。

minimum15.png

5. angular-ui-routerのcomponents導入

「JS/CSSコンポーネント」から「angular-ui-router」を検索し、追加します。

minimum07.png

loading05.png

「angular-ui-router」を指定し、保存します。

  • components/angular-ui-router/release/angular-ui-router.js

minimum17.png

ここまでで導入手順は完了です。
この時点での、loader.jsの読み込み順は以下のようになっております。

  • monaca-cordova-loader
  • monaca-core-utils
  • angular
  • onsenui
  • angular-onsenui
  • angular-ui-router

この後、確認用に簡単なコードを導入していきます。

6. 確認用コード導入

script.js
var myApp = angular.module('MyApp', ['onsen', 'ui.router']);

myApp.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {

        $stateProvider
            .state('page-A', {
                url: '/pageA',
                templateUrl: 'pageA.html'
            })
            .state('page-B', {
                url: '/pageB',
                templateUrl: 'pageB.html'
            })

    }]);
index.html
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
  <meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
  <script src="components/loader.js"></script>
  <script src="script.js"></script>

  <link rel="stylesheet" href="components/loader.css">
  <link rel="stylesheet" href="css/style.css">
</head>
<body ng-app="MyApp">

    <ons-page>
        <ons-toolbar>
            <div class="center">Minimum</div>
        </ons-toolbar>

        <ons-button ui-sref="page-A">pageA</ons-button>
        <ons-button ui-sref="page-B">pageB</ons-button>

        <div style="padding: 20px 10px;" ui-view></div>

        <script id="pageA.html" type="text/ng-template">
            <div>pageAだよ</div>
        </script>
        <script id="pageB.html" type="text/ng-template">
            <div>pageBだよ</div>
        </script>

    </ons-page>

</body> 
</html>

引用元)Angularjs UI Routerの使い方

minimum18.png

ソースコード

Githubにあげてみました。zipをDLして、monacaにインポートすると、そのまま使えます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0