前端框架搭建:angularjs,nodejs 安装,git 安装

let toStateCache, fromStateCache, cssToBeEnableList = []export default app => {document.domain='cnsuning.com'app.config(['$stateProvider', '$urlRouterProvider', ($stateProvider, $urlRouterProvider) => {mockFn($stateProvider, 'state')// $urlRouterProvider.otherwise('/portal');let header = 'Header.';if(window != window.top){header = ''}$urlRouterProvider.otherwise(function ($injector) {var $state = $injector.get("$state");$state.go('Header.overview');});$stateProvider.state('Header', {abstract: true,cssUrl: 'business/components/headerCD/headerCD.css',templateUrl: 'business/components/headerCD/headerCD.html',controller: 'headerCD'}).state(header+'cleanup', {url: '/cleanup',templateUrl: 'business/components/cleanup/cleanup.html',cssUrl: 'business/components/cleanup/cleanup.css',controller: 'CleanUpCtrl'}).state(header+'dependency', {url: '/dependency',templateUrl: 'business/components/dependency/dependencyhigh.html',cssUrl: 'business/components/dependency/dependencyhigh.css',controller: 'DependencyCtrl'}).state(header+'logDetail', {url: '/logDetail',templateUrl: 'business/components/logDetail/logDetail.html',cssUrl: 'business/components/logDetail/logDetail.css',controller: 'logDetailCtrl'}).state(header+'overview', {url: '/overview?appId/:appName',templateUrl: 'business/components/buildRecord/buildRecordhigh.html',cssUrl: 'business/components/buildRecord/buildRecordhigh.css',controller: 'BuildRecordCtrl'}).state(header+'buildDetail', {url: '/buildDetail/:recordId/:appId',templateUrl: 'business/components/buildRecord/buildDetail/buildDetail.html',cssUrl: 'business/components/buildRecord/buildDetail/buildDetail.css',controller: 'BuildDetailCtrl'}).state(header+'appUpload',{url: '/appBuild/upload',templateUrl: 'business/components/buildRecord/upload/upload.html',cssUrl: 'business/components/buildRecord/upload/upload.css',controller: 'AppUploadCtrl'}).state(header+'appDeploy',{url: '/appBuild/deploy',templateUrl: 'business/components/buildRecord/deploy/deploy.html',cssUrl: 'business/components/buildRecord/deploy/deploy.css',controller: 'deployCtrl'    }).state(header+'compomentRecord',{url: '/compoment',templateUrl: 'business/components/componentRecord/componentRecord.html',cssUrl: 'business/components/componentRecord/componentRecord.css',controller: 'ComponentRecordCtrl' }).state(header+'componentUpload',{url: '/compoment/upload',templateUrl: 'business/components/componentRecord/upload/uploadhigh.html',cssUrl: 'business/components/componentRecord/upload/uploadhigh.css',controller: 'ComponentUploadCtrl'  }).state(header+'myComponent',{url: '/myComponent?appId/:appName',templateUrl: 'business/components/myComponent/myComponent.html',cssUrl: 'business/components/myComponent/myComponent.css',controller: 'myComponentCtrl'    })//            .state(header+'myToggle',{
//              url: '/myToggle/:tabIndex/:appName/:envType',
//              templateUrl: 'business/components/myToggle/myToggle.html',
//              cssUrl: 'business/components/myToggle/myToggle.css',
//              controller: 'myToggleCtrl'
//            }).state(header+'storeManager',{url: '/storeManager?storename/:storetype',templateUrl: 'business/components/storeManager/storeManager.html',cssUrl: 'business/components/storeManager/storeManager.css',controller: 'storeManagerCtrl'}).state(header+'addStore',{url: '/storeManager/addStore',templateUrl: 'business/components/storeManager/addStore/addStore.html',cssUrl: 'business/components/storeManager/addStore/addStore.css',controller: 'addStoreCtrl'  }).state(header+'searchLogger',{url: '/storeManager/searchLogger',templateUrl: 'business/components/storeManager/searchLogger/searchLogger.html',cssUrl: 'business/components/storeManager/searchLogger/searchLogger.css',controller: 'searchLoggerCtrl' }).state(header+'cleanSetting',{url: '/storeManager/cleanSetting',templateUrl: 'business/components/storeManager/cleanSetting/cleanSetting.html',cssUrl: 'business/components/storeManager/cleanSetting/cleanSetting.css',controller: 'cleanSettingCtrl' }).state(header+'NoticeSetting',{url: '/storeManager/NoticeSetting',templateUrl: 'business/components/storeManager/NoticeSetting/NoticeSetting.html',cssUrl: 'business/components/storeManager/NoticeSetting/NoticeSetting.css',controller: 'NoticeSettingCtrl'}).state(header+'myToggle',{url: '/myToggle/:tabIndex/:appName/:envType/:type',templateUrl: 'business/components/myToggle/myToggle.html',cssUrl: 'business/components/myToggle/myToggle.css',controller: 'myToggleCtrl'    }).state(header+'imageDetail', {url: '/imageDetail/:recordId',templateUrl: 'business/components/buildRecord/imageDetail/imageDetail.html',cssUrl: 'business/components/buildRecord/imageDetail/imageDetail.css',controller: 'BuildDetailCtrl'})}]);app.run(['$rootScope', 'LoginService', '$window', ($rootScope, LoginService, $window) => {document.domain = 'cnsuning.com'window.parent.ifr1Init && window.parent.ifr1Init($rootScope, $window, LoginService)$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams, options) {toStateCache = toStatefromStateCache = fromState// let params = /\/(\d+)$/.exec(location.href)// let projectId = params && params[1]$rootScope.projectId = toParams.projectId})//be careful, the time of removing css file is important, or the screen view would be flashing$rootScope.$on('$viewContentLoaded', function (event, viewConfig) {if (!toStateCache || !fromStateCache) returnlet sameName = getSameStateName(toStateCache, fromStateCache)let exceptName = toStateCache.name || ''removeCssList(sameName, exceptName)for (let i = 0; i < cssToBeEnableList.length; i++) {cssToBeEnableList.pop()()}})}])
}function addResolve(obj) {obj.resolve = {css: ['$q', '$state', ($q, $state) => {var deferred = $q.defer();if (obj.cssUrl) {let csslink = document.createElement('link')csslink.setAttribute('rel', 'stylesheet')csslink.setAttribute('type', 'text/css')csslink.setAttribute('href', obj.cssUrl)csslink.setAttribute('data-name', obj.name)csslink.addEventListener('load', e => {let styleSheet = csslink.sheet || csslink.styleSheet;//如果可以在加载css文件的同时disabled,应该可以避免闪烁styleSheet.disabled = truecssToBeEnableList.push((sheet => {return function () {sheet.disabled = false}})(styleSheet))deferred.resolve()})document.head.appendChild(csslink)} else {deferred.resolve()}return deferred.promise;}]}return obj
}function mockFn(obj, name) {let old = obj[name]obj[name] = function () {arguments[1].name = arguments[0]return old.call(obj, arguments[0], addResolve(arguments[1]))}
}/*** */
function removeCssList(sameName, exceptFile) {if (!sameName.length) returnlet exceptArr = exceptFile.split('.'),exceptStr = '',exceptName = ''if (exceptFile.match('.')) {exceptArr.forEach(e => {exceptName += exceptName ? '.' + e : eexceptStr += ':not([data-name="' + exceptName + '"])'})}let links = document.querySelectorAll('head>link[data-name]' + exceptStr)for (let i = 0; i < links.length; i++) {let link = links[i]if (sameName.length === 0) {document.head.removeChild(link)} else {let name = ''let r = sameName.every(e => {name += name ? '.' + e : eif (name !== link.dataset.name) {return true}})if (r)document.head.removeChild(link)}}
}/*** get the same part between toState.name and fromState.name*/
function getSameStateName(toState, fromState) {let toStateName = toState.name.split('.'),fromStateName = fromState.name.split('.'),result = []for (let i = 0; i < toStateName.length; i++) {if (toStateName[i] === fromStateName[i]) {result.push(toStateName[i])} elsebreak}return result
}

前端框架:

angularjs 路由---angularjs 搭建前端框架相关推荐

  1. 【原】jQuery easyUI 快速搭建前端框架

    jQueryEasyUI jQuery EasyUI是一组基于jQuery的UI插件集合体,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要 ...

  2. requirejs搭建前端框架

    1. 文件结构 2. base.js 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 requirejs.config({     b ...

  3. web前端框架——一些简单理解

    以下为百度内容+自己总结: 前端框架一般指用于简化网页设计的框架,前端框架分很多种,这些框架封装了一些功能,比如html文档操作,漂亮的各种控件.可以把bootstrap也叫作前端框架,也可以把jQu ...

  4. django项目如何连接前端_工作笔记前端小白如何搭建前端项目

    "前言,来到杭州差不多有两年左右了,大小小做过不少项目.之前都是有技术大佬在前面抗住.作为菜鸡的本人只要在大佬后面听大佬指挥摸鱼划水就行.最近公司接到一个新项目,由于大佬们纷纷出走,于是搭建 ...

  5. 【Java Web前端开发】前端框架 bootstrap+jquery+angularjs探索

    文章目录 1 Bootstrap 2 jQuery 3 AngularJS 1 Bootstrap 在Bootstrap的官网介绍中,Bootstrap is the most popular HTM ...

  6. 前端框架——bootstrap/knockoutjs/angularjs

    前端框架--bootstrap/knockoutjs/angularjs 转载于:https://blog.51cto.com/caochun/1854522

  7. 从Java的角度理解前端框架,nodejs,reactjs,angularjs,requirejs,seajs

    从Java的角度理解前端框架,nodejs,reactjs,angularjs,requirejs,seajs [前端神秘的面纱] 对后端开发来说,前端是神秘的, 眼花缭乱的技术,繁多的框架, 如果你 ...

  8. 基于angularJS和requireJS的前端架构

    1.概要描述 1.1.angularJS描述:angularJS是可以用来构建WEB应用的,WEB应用中的一种端对端的完整解决方案.通过开发者呈现一个更高层次的抽象来简化应用的开发.最适合的就是用它来 ...

  9. 基于 AngularJS 的个推前端云组件探秘

    本文为个推投稿,根据个推 Web 前端首席架构师姜季廷在 Meetup 野狗技术沙龙第三期的技术分享整理而成.他从 Angular 的特性.组件化之路以及个推云组件最佳实践和经验分享等维度为大家解读了 ...

最新文章

  1. 代码片段管理器——SnippetsLab
  2. LeetCode Algorithm 1. 两数之和
  3. Pytorch超简单安装教程
  4. 骚年快答 | 技术中台与业务中台都是啥?
  5. 量子计算机对人类长寿,科学家称“极端长寿”在未来几十年可能会达到新的里程碑...
  6. Java中的Unsafe在安全领域的一些应用总结和复现
  7. [Leetcode][第647题][JAVA][回文子串][动态规划][中心扩展][Manacher 算法]
  8. 结合反向传播算法使用python实现神经网络的ReLU、Sigmoid、Affine、Softmax-with-Loss层
  9. 答网友:如何在Sbo Add-on中激活或者禁止系统增加、查找和导航按钮?
  10. 基础知识—循环语句-while
  11. html显示数据库的数据类型,将HTML插入mysql数据库,显示E类型
  12. ui web php,Uimaker 一个精美的后台管理系统模版,可使用在web 中 WEB(ASP,PHP,...) 262万源代码下载- www.pudn.com...
  13. a5松下驱动器参数设置表_松下伺服驱动器参数设置MSD043A1X
  14. 2020 字节跳动,网易,华为(1),阿里P7级别面试经验总结
  15. Kiwi Syslog日志服务器的安装及配置使用
  16. QQ连连看外挂源代码
  17. MySQL报错Column xxxx in xxxx clause is ambiguous
  18. 做sxy官网的一点经验
  19. 数据采集与埋点简介之 代码埋点、可视化埋点与无痕埋点
  20. 周纪四 赧王中十八年(甲子、前297)——摘要

热门文章

  1. ssh localhost免密码登录(转)
  2. 4.1 简单方程的解
  3. 关于PrintQueueCollection()类,跨线程调用错误“线程无法访问此对象,因为另一个线程拥有该对象”
  4. 【机器学习】岭回归(L2正则在干嘛!)
  5. python亲和性分析法推荐电影论文_关于《Python数据挖掘入门与实战》读书笔记二(亲和性分析)...
  6. JEPaas代码_((列表)输入字段值而改变值
  7. 计算机网络资料篇(二)——快速理解网络协议
  8. BZOJ2240 : ural1676 Mortal Combat
  9. springmvc 后台向页面EasyUI的Datagrid传递数据(JSon格式)
  10. web安全认证机制知多少