angular.js + require.js構(gòu)建模塊化單頁(yè)面應(yīng)用的方法步驟
前言
本文主要給大家介紹的是關(guān)于利用angular.js + require.js構(gòu)建模塊化單頁(yè)面應(yīng)用的方法,分享出來(lái)供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看詳細(xì)的介紹吧。
AngularJS描述:
angularjs是可以用來(lái)構(gòu)建WEB應(yīng)用的,WEB應(yīng)用中的一種端對(duì)端的完整解決方案。通過(guò)開(kāi)發(fā)者呈現(xiàn)一個(gè)更高層次的抽象來(lái)簡(jiǎn)化應(yīng)用的開(kāi)發(fā)。最適合的就是用它來(lái)構(gòu)建一個(gè)CRUD應(yīng)用,它提供了非常方便的且統(tǒng)一高效的解決方案,其數(shù)據(jù)綁定、基本模版標(biāo)識(shí)符、表單驗(yàn)證、路由、深度鏈接、組件重用、依賴注入、以及HTML標(biāo)記等,最受歡迎的莫過(guò)于它的雙向數(shù)據(jù)綁定。
requireJS描述:
requireJS是來(lái)解決傳統(tǒng)的頁(yè)面加載script標(biāo)記操作,通過(guò)其初始化配置實(shí)現(xiàn)按需、并行、延時(shí)的載入js庫(kù),聲明不同js文件之間的依賴關(guān)系,它是遵循前端AMD規(guī)范(異步模塊加載)。js代碼可以以模塊化的方式進(jìn)行組織(模塊化編程)。模塊化的意義就是通過(guò)代碼邏輯表明模塊之間的依賴關(guān)系和執(zhí)行順序,按照模塊邏輯來(lái)分解代碼,起到配合mvc框架架構(gòu)項(xiàng)目的作用。
整合:
使用requireJS模塊化定義模塊質(zhì)檢的依賴關(guān)系,打包不需要文件挨個(gè)對(duì)照,很方便。將script腳本從模版頁(yè)面中抽離出來(lái),通過(guò)js當(dāng)前模塊加載需要依賴的js模塊。按需加載。路由更加方便。
實(shí)踐—–目錄結(jié)構(gòu)
這里文件目錄可以根據(jù)項(xiàng)目需求自由調(diào)整

實(shí)踐—–index.html
和正常的html寫(xiě)法一樣,這里要注意引入js時(shí)只要引用main和require.js,由require.js去動(dòng)態(tài)加載所需要的js
<div class="main"> <div class="header"> <div class="right-bar"> <span class="welcome">當(dāng)前用戶:<b>...</b> <button class="btn btn-info btn-xs"><i class="fa fa-sign-out"></i> 注銷</button></span> </div> </div> <div class="mainContent has-shadow"> <div ng-view></div> </div> </div> <script data-main="js/main" src="js/libs/require.js"></script>//只要引用main和require.js
實(shí)踐—–入口文件main.js
實(shí)例化require.js并配置各種js的路徑以及依賴關(guān)系,初始化整個(gè)項(xiàng)目
/**
* 入口文件
*/
require.config({
baseUrl: "js/",
paths: {
"jquery": "libs/jquery203",
"angular" : "libs/angular.min",
"angular-route" : "libs/angular-route.min",
"angular-sanitize" : "libs/angular-sanitize.min",
"app" : "controllers/app",
"loadingInterceptor" : "controllers/loadingInterceptor",
"run_stateCtrl" : "controllers/run_stateCtrl",
"route" : "routes/appRoute"
},
shim: {
'angular': {
exports: 'angular'
},
'angular-route':{
deps: ["angular"],
exports: 'angular-route'
},
'angular-sanitize':{
deps: ["angular"],
exports: 'angular-sanitize'
}
}
});
require(['jquery','angular','angular-route','angular-sanitize','app','loadingInterceptor','route','run_stateCtrl'],function ($,angular){
$(function () {
angular.bootstrap(document,["myApp"]);//初始化整app
})
});
實(shí)踐—–建立angular.module 即app.js
建立angular.module,所有的操作都是在angular.module的基礎(chǔ)上進(jìn)行的
/**
* 建立angular.module
*/
define(['angular'], function (angular) {
var app = angular.module('myApp', ['ngRoute','ngSanitize','ajaxLoading']);//引入需要以來(lái)的模塊
return app;
});
實(shí)踐—–建立路由
不同的模塊被加載進(jìn)主視圖,并綁定控制器
/**
* 路由
*/
define(['app'], function(app){
return app.config(['$routeProvider',function($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'js/views/run_state.html',
controller: 'run_stateCtrl'
})
.when('/xq', {
templateUrl: 'js/views/xq.html',
controller: 'xqCtrl'
})
.otherwise({ redirectTo: '/' });
}])
});
實(shí)踐—–模塊控制器
被路由綁定的模塊控制器,控制著當(dāng)前模塊的業(yè)務(wù)流程
define(['app'], function(app){
return app.controller('run_stateCtrl', ['$scope','$rootScope','$http', function ($scope,$rootScope,$http) {
$rootScope.headTitle = $rootScope.title = "hello,angular!";
$rootScope.appName = $rootScope.span = "angular側(cè)導(dǎo)航";
$scope.getMore = function(){
angular.element('.state').text('正在運(yùn)行')
};
$http.get('./json/215145.json').
success(function(data) {
$scope.branchs = data.branchs;
});
}])
});
總結(jié)
整體的模塊搭建完之后,具體的業(yè)務(wù)流程,根據(jù)angularjs的API來(lái)具體實(shí)現(xiàn)功能。
好了,以上就是這篇文章的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
相關(guān)文章
Ionic + Angular.js實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí)功能的方法
驗(yàn)證碼倒計(jì)時(shí)這個(gè)功能相信對(duì)大家每個(gè)人來(lái)說(shuō)都不陌生,之前介紹了在Android中的實(shí)現(xiàn)方法,下面這篇文章主要給大家介紹了利用Ionic + Angular.js實(shí)現(xiàn)驗(yàn)證碼倒計(jì)時(shí)功能的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友們下面來(lái)一起看看吧。2017-06-06
Angular應(yīng)用tsconfig.json中的lib屬性示例解析
這篇文章主要介紹了Angular應(yīng)用tsconfig.json中的lib屬性示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
angularJs中datatable實(shí)現(xiàn)代碼
本篇文章主要介紹了angularJs中datatable實(shí)現(xiàn)代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06
Angularjs實(shí)現(xiàn)下拉框聯(lián)動(dòng)的示例代碼
本篇文章主要介紹了Angularjs下拉框聯(lián)動(dòng)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
AngularJS入門(mén)(用ng-repeat指令實(shí)現(xiàn)循環(huán)輸出
這篇文章主要介紹了AngularJS入門(mén)(用ng-repeat指令實(shí)現(xiàn)循環(huán)輸出,需要的朋友可以參考下2016-05-05
AngularJS 實(shí)現(xiàn)購(gòu)物車全選反選功能
這篇文章主要介紹了AngularJS 實(shí)現(xiàn)購(gòu)物車全選反選功能,需要的朋友可以參考下2017-10-10
Angluar+zorro實(shí)現(xiàn)無(wú)限級(jí)菜單
這篇文章主要為大家詳細(xì)介紹了Angluar+zorro實(shí)現(xiàn)無(wú)限級(jí)菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03

