本文主要讲讲如何在一个项目中合理的使用requireJS,来加载js代码,这里是个实际例子,讲解不多,

看详情请连接到:http://www.cnblogs.com/evaling/p/6722760.html

项目文件基本上都有一个index.html

在index界面中,我们只需要引入start.js,(start.js是一个起始js代码)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script data-main="/js/start.js" src="/lib/require.js"></script>
<link rel="stylesheet" href="/css/bootstrap.css">
<link rel="stylesheet" href="/css/theme.css">
<link rel='icon' href='/image/logo.jpg' type='image/jpg'/>
</head>
<body>
<!--添加头部-->
<div ui-view="main"></div>
<div footer></div>
<!--<pnav></pnav>-->
<!--进度条-->
<div class="loading-progress"></div>
<div class="auto-message"></div> <script> </script>--> </body>
</html> 

start.js

try {
require.config({//通过此次配置后,我们可以在各个子模块中使用下面的文件库
baseUrl: "js",
paths: {
'angular': '../lib/angular',
'ui-router': '../lib/angular-ui-router',
'jquery': '../lib/jquery',
'lodash': '../lib/lodash',
'ng-bootstrap': '../lib/ui-bootstrap-tpls-1.3.2',
'angular-locale_zh-cn': "../lib/angular-locale_zh-cn",
'webupload': '../lib/webuploader',
'rap': "../lib/ngrap",
'nganimate': '../lib/angular-animate',
'kindeditor-all': '../lib/kindeditor/kindeditor-all',
'zh-cn': '../lib/kindeditor/lang/zh-CN',
'pingpp': '../lib/pingpp',
'echarts': '../lib/echarts',
'statehelper': '../lib/statehelper',
'map_china': '../lib/echarts/map/china',
'thenjs': '../lib/then',
"ng-require": '../lib/angular-require',
'sharejs':'../lib/share'
},
shim: {
'angular': {
exports: 'angular',
deps:['jquery']
}, 'zh-cn': {
deps: 'kindeditor-all'
},
'ui-router': {
deps: ['angular']
},
'angular-locale_zh-cn': {
deps: ['angular']
},
'ng-bootstrap': {
deps: ['angular','angular-locale_zh-cn']
},
'rap': {
deps: ['angular']
},
'nganimate': {
deps: ['angular']
},
'statehelper': {
deps: ['ui-router']
},
'ng-require': {
deps: ["angular"]
}
},
waitSeconds: 15
}); require(['angular', 'env','app','router',"ctrl/rootctrl"], function (angular, env,app,router) {//参数列表是将模块引入
if (env == "dev") {
document.domain = "localhost";
} else if (env == 'test') {
document.domain = "two.cn"; } else if (env == "production") {
document.domain = "three.com";
} angular.bootstrap(document, ['myapp']); });
} catch (e) {
window.location.href = "/errors/ie8.html";
}
app.js
define(['angular','ng-require','rap','ng-bootstrap','ui-router'], function (angular) {
var myapp = angular.module('myapp', ['ui.router', 'ui.bootstrap', 'ngRap','ngRequire']); myapp.config(['$httpProvider', 'ngRapProvider', function (httpProvider, ngRapProvider) {
/* ngRapProvider.script = 'http://rap.taobao.org/rap.plugin.js?projectId=15265';// replce your host and project id
/* ngRapProvider.script = 'http://rap.taobao.org/rap.plugin.js?projectId=15265'; // replce your host and project id
ngRapProvider.enable({
mode:2,
domain:['http://10.0.3.217','http://api...cn:81']
});
httpProvider.interceptors.push('rapMockInterceptor');*/
}]);
return myapp;
});
router:
define(['app', 'env',
'routers/demo/d_default',
'routers/account/account',
'routers/scene/scene',
'routers/proposal/proposal',
'routers/ideas/ideas',//创意
'routers/setting/setting',
'routers/patent/patent',//专利
'routers/workspace/scene_mainscene',//工作台
'routers/practicePages/practices' ], function (myapp, env) {
myapp.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', '$requireProvider',
function ($stateProvider, $urlRouterProvider, $locationProvider, $requireProvider) {
$urlRouterProvider.otherwise("/account/login");
if (env == "production" || env == "test") {
$locationProvider.html5Mode(true);
}
$stateProvider.state('home', {
url: '/home',
views: {
'main': {
templateUrl: 'tpls/home/home.html',
controller: 'home_home_ctrl'
}
}
}); }]);
});
rootCtrl:
define(['app',
'ctrl/setting/setting_ctrl',
'ctrl/home/home_ctrl',
'ctrl/proposal/proposal_ctrl',
//'ctrl/account/account_ctrl',
'ctrl/scene/apply_ctrl',
'ctrl/scene/new_ctrl',
'ctrl/patent/patent_ctrl', //专利
'ctrl/ideas/ideas_ctrl', //创意
'ctrl/workspace/mainscene_ctrl',//工作台
'ctrl/proposal/proposal_export_ctrl',//导出提案
'ctrl/patent/patent_export_ctrl',//导出专利
'services/permission' /* "ctrl/account/account_login_ctrl",
"ctrl/account/account_register_ctrl"*/ ],function (myapp) {
//加载字典数据到本地存储
myapp.controller('root_controller',
['$scope', 'patent_api', function (s, patent_api) {
console.log('root_controller') }])
});
ideas_ctrl:
define(["app",
"ctrl/ideas/ideas_first_ctrl",
"ctrl/ideas/ideas_allIdeas_ctrl", //全部创意
"ctrl/ideas/ideas_myIdeas_ctrl", //我的创意
"ctrl/ideas/ideas_add_ctrl", //创意新增(发布创意)
"ctrl/ideas/ideas_detail_ctrl", //创意详情的ctrl
"ctrl/ideas/ideas_edit_ctrl", //编辑创意
"ctrl/ideas/ideas_waitPass_ctrl", //待审批列表
"ctrl/ideas/ideas_hasPass_ctrl", //已经审批
"ctrl/ideas/appr_listDetail_ctrl" //创意审批详情 ],function(huadeeapp){
console.log('ideasaddCtrl');
});
ideas_myIdeas_ctrl:
define(["app","directives/sidebar/sidebar",'api/setting_api','api/ideas_api','services/zct_get_my_right','api/dictionary_api',
'services/create_fixed_files','services/setting','services/translate_tags_style'], function (myapp) {
myapp.controller('ideas_myIdeas_ctrl',
[
'$scope',
'$rootScope',
'$state',
'setting_api',
'ideas_api',
'myalert',
'get_my_right',
'dictionary_api',
'create_fixed',
'setting',
'translate_tags_format',
function (s, rs,$state,setting_api, ideas_api,myalert,getRight,dictionary_api,create_file,setting,tags_format) {
console.log("ideas_myIdeas_ctrl");
// debugger;
//tab 的切换 ........///

  

如何在项目中使用requireJS的更多相关文章

  1. ionic新手教程第三课-在项目中使用requirejs分离controller文件和server文件

    继上篇教程中提到的,我们新建一个简单的tabs类型的Ionic项目. 依据文件夹文件我们知道,系统自己主动创建了一个controller文件和server文件,而且把全部的控制器和服务都写到这两个文件 ...

  2. 【grunt第三弹】grunt在前端实际项目中的应用

    前言 [grunt第二弹]30分钟学会使用grunt打包前端代码(02) [grunt第一弹]30分钟学会使用grunt打包前端代码 经过前两次的学习,我们了解了grunt打包的一些基础知识,对于压缩 ...

  3. VS项目中使用Nuget还原包后编译生产还一直报错?

    Nuget官网下载Nuget项目包的命令地址:https://www.nuget.org/packages 今天就遇到一个比较奇葩的问题,折腾了很久终于搞定了: 问题是这样的:我的解决方案原本是好好的 ...

  4. ABP项目中使用Swagger生成动态WebAPI

    本文是根据角落的白板报的<使用ABP实现SwaggerUI,生成动态webapi>一文的学习总结,感谢原文作者角落的白板报. 1 安装Swashbuckle.core 1.1 选择WebA ...

  5. iOS 之项目中遇到的问题总结

    昨天去一家公司面试,面试官问了我在项目开发中遇到过哪些问题,是什么引起的,怎样解决的? 当时由于有点小紧张只说出了一两点,现在就来好好总结一下. 问题: 1.两表联动 所谓的两表联动就是有左右两个表格 ...

  6. My97DatePicker时间控件在项目中的应用

    一.下载My97DatePicker的压缩包My97DatePicker.rar,解压. 注:My97DatePicker最新版本有开发包,项目中使用时删掉,以便节省空间,提高程序的运行效率. 二.在 ...

  7. 在项目中同时使用Objective-C和Swift

    苹果发布的Swift语言可以和之前的Objective-C语言同时存在于一个项目中. 可能有人会认为是同一个类文件中既可以有Objective-C也可以有Swift,这是不对的.同一个类文件或同一个代 ...

  8. 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持

    在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...

  9. 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入

    在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...

随机推荐

  1. HDU 1693 插头dp入门详解

    放题目链接   https://vjudge.net/problem/22021/origin 给出一个n*m的01矩阵,1可走0不可通过,要求走过的路可以形成一个环且可以有多个环出现,问有多少不同的 ...

  2. C#/Java 程序员转GO/golang程序员笔记大全(day 01)

    前言: 整理一下学习 Go 语言的笔记,作为一名老程序,学习一名新的开发语言自然不需要像小白那样从 HelloWorld 看起. 简单整理一下 Go 的一些差异处,希望对大家学习 go 有点帮助,不正 ...

  3. 用stringstream实现从数字到字符串的转化

    代码简单,字符串到数字和数字到字符串的写法类似. #include <sstream> #include <bits/stdc++.h> using namespace std ...

  4. HTML通过jQuery传值赋值

    网页传值很常见,如果通过动态网页传值,我们很容易实现.但是如果静态网页传值,这个就要找资料,方法或者询问大牛们了.这个原来还真的没有做过.今天一同事需要做这个类似的功能,应该是昨天了.本来是昨天写的, ...

  5. 【微软混合现实】开始使用Unity-第一章:创建一个新的项目

    使用Unity开发App,第一步需要创建一个项目.项目具有一系列组织好文件夹,其中最重要的是你的附件文件夹(Assets folder).在这个文件夹中,存储了从其他工具中创建的数字内容,比如Maya ...

  6. Prism 4 文档 ---第8章 导航

        作为同用户具有丰富的交互的客户端应用程序,它的用户界面(UI)将会持续不断的更新来反映用户工作的当前的任务和数据.用户界面可以进行一段时间相当大的变化作为用户交互的应用程序中完成各种任务.通过 ...

  7. eureka-8-Eureka 的健康检查

    eureka.client.healthcheck.enabled:true 应用程序将自己的健康状态传播到Eureka Server

  8. 个人Blog小程序开发完毕

    今天忙了一天,算是把这个小程序弄好了,包括小程序前端页面.接口对接.后台系统.服务器架 设.域名备案.证书安装(现在阿里云的免费证书怎么审核要这么久啊,到现在还在审核中) 先上截图: 这个背景图片的替 ...

  9. ogg高版本到低版本同步

    源端ogg版本: [oracle@rac1 ogg]$ ggsci -v Oracle GoldenGate Command Interpreter for Oracle Version 11.2.1 ...

  10. List connected users–similar to task manager

    class Program { [DllImport("wtsapi32.dll")] static extern IntPtr WTSOpenServer([MarshalAs( ...