简介: 本篇博客是在学习AngularJS自定义控件的学习记录,作为一个学习示例...
A-基本架构介绍
新建一个AngularJs的项目,大概项目结构如下:
项目结构:
大概是由:app.js,bootstrap.js,app-routes.js,config.json,common-config.json等主要文件组成。
app.js--当做项目的起始文件吧,里面会包含:注入的其他JS模块,过滤设置,配置文件的设置等。
define(function (require, exports, module) { var angular = require('angular'); var asyncLoader = require('angular-async-loader'); require('angular-ui-router'); require('angular-seagull2-common'); require('angular-seagull2-oauth'); require('angular-seagull2-workflow'); require('angular-seagull2-infrastructure'); require('angular-indentity-code'); require('angular-seagull2-empprovider'); require('angular-seagull2-careerdev'); require('angular-seagull2-corporation'); var app = angular.module('app', [ 'ui.router', 'angular-seagull2-common', 'angular-seagull2-workflow-oauth', 'angular-seagull2-workflow', 'angular-seagull2-infrastructure', 'angular-datepicker', 'angular-indentity-code', 'angular-seagull2-empprovider', 'angular-seagull2-careerdev', 'angular-seagull2-corporation']); //常规金额:由于angular默认的金额格式如果是负数的话显示格式为(12,345.00),使用customCurrency替换成:-12,345.00 app.filter('customCurrency', ["$filter", function ($filter) { return function (amount, currencySymbol) { var currency = $filter('currency'); if (amount < 0) { return currency(amount, currencySymbol).replace("(", "-").replace(")", ""); } return currency(amount, currencySymbol); }; }]); //将阿拉伯数字转化为中文大写 app.filter('cnuppercase', ["$filter", function ($filter) { return function(n) { if (n === '' || n === '0' || n === 0) { return ""; } if (!/^(0|[1-9]\d*)(\.\d+)?$/.test(n)) { return ""; } var unit = "千百拾亿千百拾万千百拾元角分", str = ""; n += "00"; var p = n.indexOf('.'); if (p >= 0) n = n.substring(0, p) + n.substr(p + 1, 2); unit = unit.substr(unit.length - n.length); for (var i = 0; i < n.length; i++) str += '零壹贰叁肆伍陆柒捌玖'.charAt(n.charAt(i)) + unit.charAt(i); return str.replace(/零(千|百|拾|角)/g, "零") .replace(/(零)+/g, "零") .replace(/零(万|亿|元)/g, "$1") .replace(/(亿)万|壹(拾)/g, "$1$2") .replace(/^元零?|零分/g, "") .replace(/元$/g, "元整"); }; }]); ////格式化字符串 //var template1 = "我是{0},今年{1}了"; //var template2 = "我是{name},今年{age}了"; //var result1 = template1.format("loogn", 22); //var result2 = template2.format({ name: "loogn", age: 22 }); //两个结果都是"我是loogn,今年22了" String.prototype.format = function (args) { var result = this; if (arguments.length > 0) { if (arguments.length == 1 && typeof (args) == "object") { for (var key in args) { if (args[key] != undefined) { var reg = new RegExp("({" + key + "})", "g"); result = result.replace(reg, args[key]); } } } else { for (var i = 0; i < arguments.length; i++) { if (arguments[i] != undefined) { var reg = new RegExp("({[" + i + "]})", "g"); result = result.replace(reg, arguments[i]); } } } } return result; }; var commonConfig = require('text!../common-config.json'); var config = require('text!../config.json'); app.config(['configureProvider', function (configureProvider) { configureProvider.configure(commonConfig); configureProvider.configure(config); }]); asyncLoader.configure(app); module.exports = app; });