1. 程式人生 > >Ionic從零單排(四)——Ionic程式分離不同controller

Ionic從零單排(四)——Ionic程式分離不同controller

        在我們使用 ionic start HelloWorld tabs 等命令建立一個ionic程式時,系統會自動建立一個controllers.js檔案,並且把所有的控制器都寫到這個檔案中。

        當我們的專案比較小的時候,我們還可以把所有的 controllers 寫在 controllers.js 檔案中,但是當我們的專案比較大的時候,業務邏輯相對複雜,如果我們還把所有的 controllers 寫在一個 controllers.js 檔案中,那麼可能我們的 controllers.js 檔案會達到成千上萬行程式碼,這樣極不利於我們的開發維護。所以我們需要把單獨的 controllers 分離開來。

方法一:直接分離。

        我們先新建一個總的路由模組js, route.js

        angular.module('route', [
          'login.controller',
          'menu.controller',
          'trade.controller',
          'returns.controller'
        ]);

        上面程式碼中單引號中的字串可以根據自己情況隨便寫,只要保證多個 js 間對應的相同就行。第一個字串route 是本模組名login.controller 

這些是本模組會載入的模組,也就是我們分離出去的 controller 

        然後在app.js中載入總路由模組 route.js,第一行程式碼中,中括號部分為 app.js 會載入的模組,這裡讓 app.js 載入 route 模組即可。

angular.module('phonepos', ['ionic', 'route'])

  .run(function ($ionicPlatform) {
    $ionicPlatform.ready(function () {
      if (window.cordova && window.cordova.plugins.Keyboard) {
        cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
        cordova.plugins.Keyboard.disableScroll(true);
      }
      if (window.StatusBar) {
        StatusBar.styleDefault();
      }
    });
  });

        然後我們開始分離 controller 到單獨的 js檔案,我們新建一個 login.js 檔案,模組名設定為route.js中設定的相對應的模組。

angular.module('login.controller', [])
  .controller('loginCtrl', function ($scope, $http, $state, $ionicPopup) {
    //相關程式碼
  }
  );


        其他的controller也做對應處理,這樣我們就把不同的controller分離成單獨的js檔案了。

        注意,分離完之後一定要記得在 index.html 中引入所有的 js 檔案

        如果分離完之後出現了什麼問題,可以 ionic server ,瀏覽器 F12檢視報錯,然後做相應處理。


----------------------------------------------------------------手動分割線----------------------------------------------------------------

方法二:使用Require.JS框架分離

        這種分離方法很麻煩,還可能會出現問題,不建議使用該方法。

        博主把這種方法寫在這裡,一是記錄下還有這種方法可以分離,二是把這個作為Require.JS框架使用教程。

        下面我們直接介紹如何利用 Require.JS框架 將ionic程式中不同的controllers分離。

        首先我們新建一個 controllers資料夾,用於存放不同controllers的js檔案。

        

        我們這裡有三個controllers,分別是loginCtrl、menuCtrl、dayoverCtrl。

        我們在controllers資料夾下新建三個js檔案,命名為login.js、menu.js、dayover.js。

        

        以login.js為例。將controllers.js中loginCtrl相關程式碼(紅框框出來部分)剪下到login.js檔案下,並修改為圖中所示結構。

        修改controllers.js為下圖所示結構。

        如果需要拆分services.js,與上述類似。

        修改app.js檔案如下圖所示結構

        到這裡,我們controller的拆分就完成了,下面我們做相關配置,讓程式能夠正常啟動。

        首先index.html引用require.js並把原來對app.js和controllers.js的引用去掉。並且去掉ng-app="starter"

        js目錄下新建main.js,定義程式的啟動入口。

	require.config({
  		baseUrl: 'js',	//基目錄
  		deps: [
   			 'bootstrap'	//啟動檔案
  		]
	});

        js目錄下新建bootstrap.js

define(['app'], function (app) {
  'use strict';

  angular.element(document).ready(function () {
    console.log("bootstrap ready");
    var startApp = function () {
      angular.bootstrap(document, [app.name]);
    };

    var onDeviceReady = function () {
      console.log("bootstrap on device ready");
      angular.element().ready(function () {
        startApp();
      });
    };
    if (typeof cordova === 'undefined') {
      startApp();
    } else {
      document.addEventListener("deviceready", onDeviceReady, false);
    }
  });
});


        到這裡,我們的ionic程式就已實現了controller分離,並且能夠正常運行了。

相關推薦

Ionic單排——Ionic程式分離不同controller

        在我們使用 ionic start HelloWorld tabs 等命令建立一個ionic程式時,系統會自動建立一個controllers.js檔案,並且把所有的控制器都寫到這個檔案中。         當我們的專案比較小的時候,我們還可以把所有的 c

Ionic單排——Ionic開發環境搭建

        Ionic是一個用來開發混合手機應用的開源框架,其基於Angular語法,學習Ionic之前,應該瞭解HTML、CSS、 JavaScript、Angular的基本語法。         Ionic開發依賴於Node.js         安裝完成後使

Ionic單排——HelloWorld

        上一篇文章中,我們建立了第一個ionic應用。本篇文章主要介紹下ionic應用的目錄結構和ide。         上篇文章中建立的HelloWorld應用目錄結構如圖。                  ├── hooks //Cordova安裝自動生

Hyperledger Fabric 1.0 開始——Fabric原始碼及映象檔案處理

2:Fabric原始碼及映象檔案處理 2.1下載Fabric原始碼 下載Fabric原始碼是因為要用到原始碼中提到的列子和工具,工具編譯需要用到go語言環境,因此需要把原始碼目錄放到$GOPATH下。通過1.3中go的安裝配置,$GOPATH設定為/opt/gopath。

cocos2dx 3.1學習——菜單、場景切換、場景傳值

天空 ptr select 特效 new 要點 綁定 使用 water 回想一下上一篇的內容,我們已經學會了創建一個新的場景scene,加入sprite和label到層中。掌握了定時事件schedule。我們能夠順利的寫出打飛機的主場景框架。 上一篇的內容我練習了七個新

Git開始

16px pop 普通 遠程服務 git clone one img 分享 模式 一、遠程倉庫管理   1、將本地內容推送到遠程庫   先關聯遠程庫,執行命令: git remote add origin https://github.com/Hollydan/gitsto

Hyperledger Fabric 1.0 開始——公網環境構建

1.3 項目 htm move 自己 lvm2 fast 情況 tor 1:環境構建 在本文中用到的宿主機環境是Centos ,版本為Centos.x86_647.2,通過Docker 容器來運行Fabric的節點,版本為v1.0。因此,啟動Fabric網絡中的節點需要先安

Hyperledger Fabric 1.0 開始——創建Fabric多節點集群

_id 測試 es2017 xtra 去掉 compose 多個 服務 執行命令 4:創建Fabric多節點集群 4.1、配置說明 首先可以根據官方Fabric自帶的e2e_cli列子中的集群方案來生成我們自己的集群,與案例不同的是我們需要把容器都分配到不同的服務器上,彼此

docker開始容器初體驗

osi build 技術分享 框架 log 註冊表 代碼 content doc 使用定義容器 Dockerfile Dockerfile定義容器內所需要的環境。對網絡接口和磁盤驅動器等資源的訪問在此環境中進行虛擬化,該環境與系統的其他部分隔離,因此您需要將端口映射到外部

docker開始堆棧初體驗,stacks

開始 services 信息 工作 run cer cal tail int 先決條件 安裝Docker 1.13或更高版本。 獲取Docker Compose,請參考第三節 按照第四節中的描述獲取Docker Machine。 在第二節中了解如何創建容器。

DevOps環境搭建

images blue roc ces 檢查 user nag col 技術分享 DevOps環境從零搭建(一) 前文說到jenkins已經安裝好了,安裝pipeline及blue-ocean(好看)插件。 切換到blue-ocean風格,創建一個pipeline,網上很多

Python3學習

# -*- coding: utf-8 -*- #數字型別轉換 a = 1.0 print(int(a)) a = 1 print(float(a)) #complex(x) 將x轉換到一個複數,實數部分為 x,虛數部分為 0。 a = 1.1 print(complex(a)) #com

Python3學習

# python 3.+ # -*- coding: utf-8 -*- #檢視版本號python -V #列印 print("Hello Python") #等待使用者輸入 input("請按下回車鍵") #同一行顯示多條語句 import sys;x = '同一行顯示多條語句';sy

微服務閘道器搭建——搭建api閘道器不帶驗證

環境準備 建立空的core2.1 api專案  演示使用名稱APIGateWay  過程參考上一篇 完成後在appsettings.json 新增節點 "Setting": { "Port": "5000" } 搭建過程 新增檔案configuration.json

微服務閘道器搭建——ocelot配置追蹤功能

butterfly 準備工作 首先下載buterfly release版本  解壓並通過命令啟動:dotnet Butterfly.Web.dll --EnableHttpCollector=true 可以採用bat檔案的方式  cd C:\Users\Lenovo\Desk

【視訊】Kubernetes1.12開始程式碼編譯到自動部署

作者: 李佶澳   轉載請保留:原文地址   釋出時間:2018/11/10 16:14:00 說明 kubefromscratch-ansible和kubefromscratch介紹 使用前準備

Centos Docker 開始2之 mssql 的資料庫檔案儲存在主機

Docker mmsql新建資料庫如果能夠把資料庫檔案儲存在主機上就好了,centos好像可以掛載的 docker 的 run 命令: -v ~/nginx/www:/www :將主機中專案的目錄www掛載到容器的/www 準備命令一下: docker run -e

Hyperledger Fabric 1.0 開始——執行測試e2e

3:執行測試e2e 3.1、執行fabric-samples的問題說明 該問題說明能夠解決6.1、平臺特定使用的二進位制檔案配置第一步的問題。可以選擇繼續閱讀該說明,或者等參考到6.1小節時再反向閱讀本說明,具體在6.1中會重新指向本步驟。 一般情況下,我們會參照官網來完成第一個網路測試,在該線上文件中會讓我

Hyperledger Fabric 1.0 開始——Fabric多節點叢集生產部署

6.1、平臺特定使用的二進位制檔案配置 該方案與Hyperledger Fabric 1.0 從零開始(五)——執行測試e2e類似,根據企業需要,可以控制各節點的域名,及聯盟鏈的統一域名。可以指定單獨節點的訪問,生成指定的公私鑰、證書等檔案。具體的引數配置可以參考generateArtifacts.sh檔案,

JavaWeb專案開始3--- 整合Mybatis-Plus,簡化開發,增強工作效率

mybatis每次查詢都要寫sql是不是很煩?每次都要貼上複製一個Controller、Service、Dao、mapper.xml是不是不想每次都重複這樣的工作? Mybatis-Plus 可以幫你解決上述的煩惱。 (一)簡介 Mybatis-Plu