手动搭建一个完整的angular实践项目

以下我记录如何简单的搭建一个angular项目, 比较适合有前端基础,但又没有使用过angular的前端开发人员,因为我看到网上的教程又都配套的使用了一些其他框架或者打包工具,以及进行一些复杂的开发环境配置,不利于初级的人学习和理解。后续我也会陆续写几篇结合不同工具框架,以及在混合app开发中搭建angular框架项目。

应用场景:

基于angular的PC端web项目,采用require加载资源,使用angularAMD和angularCSS实现按需加载angular的controllers和css。

使用工具:

一个编辑器 sublime, webstorm都行,不作要求,没有工具、插件的限制,纯手敲。

项目框架搭建 

  1、项目目录

  目录结构较简单,index是项目启动首页,js存放项目的自定义js,libs存放第三方插件及工具,views存放页面;

  

  2、 目录说明

本项目搭建好的详细目录结构如下:

  

  项目包含一个登录页面login,主界面home,三个home页面下的子页面disease、report、sports;

  2.1 require资源加载

本项目采用require加载静态资源,main.js是require加载资源的配置文件,内容如下:

require.config({
    paths: {
        //angular
        "angular": ‘../libs/angular/angular.min.v1.2‘,
        //实现angular单页面路由
        "uiRouter": ‘../libs/angular/angular-ui-router.min‘,
       //动态加载js
        "angularAMD": ‘../libs/angular/angularAMD.min‘,
       //动态加载js
        "ngload": ‘../libs/angular/ngload.min‘,
      //动态加载css
        "angularCSS": "../libs/angular/angular-css.min",
      //jquery引用
        "jquery": ‘../libs/jquery/jquery-1.12.4.min‘,
        //echart插件引用
        "echart":‘../libs/plugin/echarts.min‘,
       //angular路径文件引用
        "routeManager":‘routeManager‘
    },
    shim: {
      //定义require加载的优先顺序
        "angular": { exports: "angular" },
        "uiRouter": ["angular"],
        "angularAMD": ["angular"],
        "ngload": ["angularAMD"],
        "angularCSS": ["angular"],
        ‘commonFunc‘:[‘jquery‘],
        ‘routeManager‘:["angularAMD","uiRouter"]
    }
});

   //app.js是定义初始化angular项目的配置
define(["angular", "angularAMD", "uiRouter", "angularCSS","app","jquery"
 ], function (angular,angularAMD,uiRouter,angularCSS,myApp) {
    //资源加载后手动启动项目angular的app
    return angularAMD.bootstrap(myApp);
});      

  

  2.2 app.js配置angular

//routeManager是路径配置文件
define([‘angular‘, ‘routeManager‘],
    function(angular,RouteManager) {
        var myApp = angular.module(‘starter‘, [‘ui.router‘,"door3.css"]);
            myApp.config(
//配置按需加载contrlloer
                [‘$controllerProvider‘, function($controllerProvider) {
                    myApp.controller = $controllerProvider.register;
                }])
//配置路有文件
            .config(RouteManager)
                }])
            .run([‘$rootScope‘, ‘$state‘, ‘$window‘,function($rootScope, $state, $window) {
//$rootScope下可以定义全局方法和全局变量,以下定义了页面跳转的公共方法
                $rootScope.go=function(path,param){
                    $state.go(path,param);
                }

            }]);

        window.app = myApp;
        return myApp;
    });

   2.3 routeManager.js配置angular路由

define(["angularAMD"], function (angularAMD) {
    ‘use strict‘;
    var routeManager = function($stateProvider, $urlRouterProvider) {
             //定义默认路径为登录页面
             $urlRouterProvider.otherwise(‘/login‘);

            $stateProvider.state(‘login‘, angularAMD.route({
                    url: ‘/login‘,
                    controllerUrl: "js/controllers/loginCtrl.js",   //登录页面的controller文件
                    templateUrl: ‘views/login.html‘  //登录页面的文件路径
            }))
            .state(‘home‘, angularAMD.route({
                url: ‘/home‘,
                cache:‘true‘,
                templateUrl: ‘views/home.html‘,
                controllerUrl: ‘js/controllers/homeCtrl.js‘
            }))
            .state(‘home.disease‘, angularAMD.route({
                url: ‘/disease‘,               //home文件下的子页面
                templateUrl:‘views/disease.html‘,
                controllerUrl: ‘js/controllers/diseaseCtrl.js‘,    //子页面的controller
                css:"css/disease.css"          //子页面的css文件

            }))
    }

    return routeManager;
});    

  

  3 源码分享

  详情请见源文件代码,欢迎提问!

   http://files.cnblogs.com/files/xingxiangyi/angular-project-demo.zip

  

  

  

  

时间: 2024-11-11 06:16:10

手动搭建一个完整的angular实践项目的相关文章

react全家桶从0搭建一个完整的react项目(react-router4、redux、redux-saga)

react全家桶从0到1(最新) 本文从零开始,逐步讲解如何用react全家桶搭建一个完整的react项目.文中针对react.webpack.babel.react-route.redux.redux-saga的核心配置会加以讲解,通过这个项目,可以系统的了解react技术栈的主要知识,避免搭建一次后面就忘记的情况. 从webpack开始 思考一下webpack到底做了什么事情?其实简单来说,就是从入口文件开始,不断寻找依赖,同时为了解析各种不同的文件加载相应的loader,最后生成我们希望的

一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目

在spring cloud系列章节中,本来已经写了几个章节了,但是自己看起来有些东西写得比较杂,所以重构了一下springcloud的章节内容,新写了本章节,先教大家在工作中如何搭建一个多模块的springcloud项目. 本章及后面章节,我们使用的开发环境是 spring tool suite (sts)  + maven (当然你也可以使用IDEA + Gradle,目前使用的公司也很多). 一.新建一个父maven project模块 File->new->other->maven

如何快速搭建一个完整的移动直播系统?

移动直播行业的火热会在很长一段时间内持续,通过和各行业的整合,从而成为具有无限可能性的行业.主要因为以下三个原因: 第一,移动直播的UGC生产模式比PC端的直播更明显,人人都有设备,随时随地开播,完全顺应了互联网时代的开放性原则,能刺激更多人去创造和传播优质内容. 第二,网络带宽和速度在逐渐提高,网络成本在逐渐下降,为移动直播提供一个极佳的发展环境.文字.声音.视频.游戏等都会在移动直播中呈现,创造出更加丰富的用户体验.直播可以以SDK的形式接入到自己的应用中,比如,教育领域中的课后辅导完全可以

怎样搭建一个完整的便于优化的网站

在网站搭建初期就完成所有便于优化的框架和内容能够缩短整个网站优化时间,一个完整的便于优化的网站包含:满足用户需求的程序和内容.便于优化的路径.优先层次的布局.附加价值的内容.长尾关键词布局.合理的内链设置. 学习要点 一.符合用户需求的程序和内容 1.程序.在做网站之前要考察什么程序是符合这个网站的,比如养羊,搜索养羊出现在百度首页的是养羊吧,那么说明搜索养羊的用户有讨论需求,那么论坛类型更加适合网站.但是如果搜索婚纱摄影,出现在百度第一名的是百度图片,就说明图片类的程序更加适合这种类型的网站.

做一个完整的Java Web项目需要掌握的技能

原文链接:http://blog.csdn.net/JasonLiuLJX/article/details/51494048 最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java Web项目的同学一个比较完整的视角,提供一个所谓的"大局观",也以便于同学们更有针对性地学习.当然,这里所用到的例子项目是非常初级,简单的项目,所以大神们就可以不用往下看

第四章:怎样搭建一个完整的便于优化的网站-------------------->>转至(卧牛SEO/武汉SEO http://blog.sina.com.cn/zhengkangseo )

在网站搭建初期就完成所有便于优化的框架和内容能够缩短整个网站优化时间,一个完整的便于优化的网站包含:满足用户需求的程序和内容.便于优化的路径.优先层次的布局.附加价值的内容.长尾关键词布局.合理的内链设置.学习要点 一.符合用户需求的程序和内容 1.程序.在做网站之前要考察什么程序是符合这个网站的,比如养羊,搜索养羊出现在百度首页的是养羊吧,那么说明搜索养羊的用户有讨论需求,那么论坛类型更加适合网站.但是如果搜索婚纱摄影,出现在百度第一名的是百度图片,就说明图片类的dede程序更加适合这种类型的

做一个完整的Java Web项目需要掌握的技能[转]

转自:http://blog.csdn.net/JasonLiuLJX/article/details/51494048 最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java Web项目的同学一个比较完整的视角,提供一个所谓的"大局观",也以便于同学们更有针对性地学习.当然,这里所用到的例子项目是非常初级,简单的项目,所以大神们就可以不用往下看了.

如何在电脑上搭建一个私服,实现maven项目的上传和下载?

在本机上搭建私服 1.去官网下载nexus 下载网址: http://nexus.sonatype.org/ 下载格式:下载war格式 (还有bundle格式 ) : nexus-2.7.0-06.war (直接放入tomat的wabapps中运行) 2.将war复制到tomcat的wabapps中并运行tomcat(启动私服): 默认会创建 C:/用户/sonatype-work 目录 浏览器访问地址:http://localhost:8080/nexus-2.7.0-06/index.htm

IntelliJ IDEA 2017.3 搭建一个多模块的springboot项目(二)

上一篇我成功搭建了一个项目,名叫bale-project,下面我们继续搭建子模块. 在项目名称上右键,New->Module,新建一个模块. 这次我们选择Spring Initializr 起个名字,Next 勾选Web之后,Next. 第二个模块就建好了.我们现在简单看一下新建的这个模块的结构. idea自动给我们建了一个java类,起名ProjectApplication,这个名字与我们的ArtifactId名称是一致的.这个名字可改.这个类就是我们springboot的启动类. 打开pro