Angularjs + Requirejs 单页面WEB引用实例

24 篇文章 2 订阅
4 篇文章 0 订阅

目前互联网上很流行单页面WEB应用程序,前后端分离啊什么的,于是小试牛刀了一番,用Angularjs + Requirejs搭建一个应


用框架,我比较喜欢使用Angularjs的数据绑定功能,


自定义指令什么的,毕竟现在前后端分离,前端有很多事情要做的。


本章介绍单页面路由的配置以及Angularjs常用Service封装。


一、主函数(我取名main)


require.config({

    baseUrl: './',

    paths: {

    'app' : 'assets/angular/app',

        'angular': 'assets/angular/angular.min',

        'config-routes': 'assets/angular/config',

        'angular-ui-router': 'assets/angular-ui-router/angular-ui-router.min',

        'angular-async-loader': 'assets/angular-async-loader/angular-async-loader.min',

        'jquery' : 'assets/jquery/jquery-2.1.1',

        'layer' : 'assets/layer/layer',

        'bootstrap' : 'assets/bootstrap/bootstrap-js',

        'css' : 'assets/requirejs/require-css'

    },

    shim: {

      'layer' : ['jquery'],

      'angular-routes' : ['angular'],

'bootstrap' : ['jquery'],

          'angular': {exports: 'angular'},

          'angular-ui-router': {deps: ['angular']}

          

    }

});


require(['angular', 'app','config-routes','bootstrap'], function (angular) {

    angular.element(document).ready(function () {

        angular.bootstrap(document, ['app']);

        angular.element(document).find('html').addClass('ng-app');

    });

});


二、主页面(index


<!DOCTYPE html>

<html>

<head>

<!--<base href="/">-->

    <meta charset="utf-8">

    <title></title>    

</head>

<body>

<nav>

<ul>

<li><a ui-sref="home">HOME</a></li>

<li><a ui-sref="about">ABOUT</a></li>

</ul>

</nav>

<div ui-view></div>

<script src="assets/requirejs/require.js" data-main="main.js"></script>

</body>

</html>


三、路由配置以及Get Post请求封装(config


define(function (require) {
    var app = require('./app');
    app.run(['$state', '$stateParams', '$rootScope', function ($state, $stateParams, $rootScope) {
        $rootScope.$state = $state;
        $rootScope.$stateParams = $stateParams;
    }]);

//配置常量
app.constant("http", "");
app.constant("errorMessage", "服务器异常,请稍后重试!")

//配置路由
    app.config(['$stateProvider', '$urlRouterProvider','$httpProvider', function ($stateProvider, $urlRouterProvider, $httpProvider, $locationProvider) {
   
    //去掉URL的#
    //$locationProvider.html5Mode(true);
    //默认的首页
        $urlRouterProvider.otherwise('/home');
        
        //禁用ajax请求缓存
        if(!$httpProvider.defaults.headers.get){
        $httpProvider.defaults.headers.get = {};
        }
        //配置http发送模式
        $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';
        $httpProvider.defaults.headers.get['Pragma'] = 'no-cache';
        delete $httpProvider.defaults.headers.common["X-Requested-With"];
        $httpProvider.defaults.headers.post["Content-Type"] = "application/json";
        $httpProvider.defaults.transformRequest = function(data){
        //当参数不为空的时候
        if(data){
        return JSON.stringify(data);
        }
        }
//页面跳转
        $stateProvider
            .state('home', {
                url: '/home',
                templateUrl: 'page/home/home.html',
                controllerUrl: 'controller/home',
                controller: 'home'
            })
            .state('about', {
                url: '/about',
                templateUrl: 'page/about/about.html',
                controllerUrl: 'controller/about',
                controller: 'about'
            })
    }]);
   
   
   //Service
   
   app.service("httpService",function($http, http, errorMessage){
    //带错误参数的POST请求
    this.post = function(URL, params, success, error){
    $http.post(http + URL, params).success(function(resp){
    result(resp, success, error);
    }).error(function(resp){
    layer.msg(errorMessage);
    })
    }
   
   //带错误参数的GET请求


   this.get = function(URL, success, error){
    $http.get(http + URL).success(function(resp){
    result(resp, success, error);
    }).error(function(resp){
    layer.msg(errorMessage);
    })
   }   
   })   
});


最后补充一下(app


define(function (require, exports, module) {
    var angular = require('angular');
    var asyncLoader = require('angular-async-loader');
    require('angular-ui-router');
    var app = angular.module('app', ['ui.router']);
    asyncLoader.configure(app);
    module.exports = app;
});
奉上目录结构


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值