這篇文章給大家分享的是有關(guān)angular.js+require.js如何構(gòu)建模塊化單頁(yè)面應(yīng)用的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。
10年的息縣網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整息縣建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“息縣網(wǎng)站設(shè)計(jì)”,“息縣網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
AngularJS描述:
angularjs是可以用來構(gòu)建WEB應(yīng)用的,WEB應(yīng)用中的一種端對(duì)端的完整解決方案。通過開發(fā)者呈現(xiàn)一個(gè)更高層次的抽象來簡(jiǎn)化應(yīng)用的開發(fā)。最適合的就是用它來構(gòu)建一個(gè)CRUD應(yīng)用,它提供了非常方便的且統(tǒng)一高效的解決方案,其數(shù)據(jù)綁定、基本模版標(biāo)識(shí)符、表單驗(yàn)證、路由、深度鏈接、組件重用、依賴注入、以及HTML標(biāo)記等,最受歡迎的莫過于它的雙向數(shù)據(jù)綁定。
requireJS描述:
requireJS是來解決傳統(tǒng)的頁(yè)面加載script標(biāo)記操作,通過其初始化配置實(shí)現(xiàn)按需、并行、延時(shí)的載入js庫(kù),聲明不同js文件之間的依賴關(guān)系,它是遵循前端AMD規(guī)范(異步模塊加載)。js代碼可以以模塊化的方式進(jìn)行組織(模塊化編程)。模塊化的意義就是通過代碼邏輯表明模塊之間的依賴關(guān)系和執(zhí)行順序,按照模塊邏輯來分解代碼,起到配合mvc框架架構(gòu)項(xiàng)目的作用。
整合:
使用requireJS模塊化定義模塊質(zhì)檢的依賴關(guān)系,打包不需要文件挨個(gè)對(duì)照,很方便。將script腳本從模版頁(yè)面中抽離出來,通過js當(dāng)前模塊加載需要依賴的js模塊。按需加載。路由更加方便。
實(shí)踐—–目錄結(jié)構(gòu)
這里文件目錄可以根據(jù)項(xiàng)目需求自由調(diào)整
實(shí)踐—–index.html
和正常的html寫法一樣,這里要注意引入js時(shí)只要引用main和require.js,由require.js去動(dòng)態(tài)加載所需要的js
//只要引用main和require.js當(dāng)前用戶:...
實(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']);//引入需要以來的模塊 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; }); }]) });
感謝各位的閱讀!關(guān)于“angular.js+require.js如何構(gòu)建模塊化單頁(yè)面應(yīng)用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!