- 浏览: 29707 次
- 性别:
- 来自: 西安
最新评论
文章列表
angular.js自定义服务
- 博客分类:
- Js开发
AngularJs允许开发者创建自定义服务,用于实现特定的功能。主要使用的服务类型包括:value、constant、factory、service。
1.value与constant
二者在使用上没有太大区别,基本意义都是为模块提供一个值,可以是字符串也可是JS对象。
2.factory
可以提供一个服务工厂,通常返回一个函数,具体语法为:
angular.module('myApp',[]).factory('factoryName',function(args){
return function(otherArgs){
//some operates ar ...
angular.js最为强大的地方在于可以通过自定义指令来扩展html元素,这种思路与JSP的taglib类似,但在实现细节上更为自由,并且自定义指令也可以提供表单元素交互、数据绑定、事件处理功能。
创建自定义指令的基本格式为:
angular.module('myApp',[]).directive('myDirective',function(){
return {
restrict :'EA',
scope:true,
template:``//ES6多行字符支持,模板文本字符串,也可使用templateUrl
r ...
在使用angular.js(版本1.4.6)时,以下代码在渲染时出现异常:
<input type='checkbox' ng-model='cbValue'
ng-true-value="{{someText}}" ng-false-value="BUMMER">
Checkbox Value:{{cbValue}}
异常信息片段截取:
angular.js:12450Error: [ngModel:constexpr] http://errors.angularjs.org/1.4.6/ngModel/cons ...
angular.js提供了丰富的内置筛选器:
1.currency[:symbol],依据指定的symbol将数值格式化为货币。
2.filter:exp:compare,使用exp参数值对表达式进行宽松或严格筛选比较。compare通常为布尔值或返回布尔值的表达式,为true时将进行严格比较(===),为false时只检查期望值是否为真实值的子集(通常用作页面值搜索)
3.json,将js对象格式化为JSON字符串,不支持的属性将被忽略。
4.limitTo:limit,限制个数。
5.lowercase/uppercase,大小写转换。
6.number[:faction],将 ...
angular.js是实现了依赖注入的前端框架,通常这个概念出现在spring类似的后端框架中。angular.js对依赖注入的实现思路是:定义和动态地注入依赖对象到另一个对象中,使注入对象中可使用所有依赖注入对象提供的功能。
有 ...
全局API:
当angular.js加载完成之后,一些全局API即可用,主要包括
1.copy(src,[dst]):对象或数组复制
2.element(element):返回被包装为Jquery元素的DOM节点,区分JQuery类库加载顺序成为完整JQ对象或其子集。
3.equals(obj1,obj2):以===运算符比较两个对象,返回布尔值;
4.extend(dst,src):将src的所有属性复制到dst对象上;
5.forEach(obj,iterator,[context]):遍历obj集合中所有的对象,iterator是迭代调用函数。
6.fromJson(js ...
1.常见DOM指令
ng-disabled:用于控制节点是否处于禁用状态
ng-show:指定一个html元素是否可见(可使用表达式作为判别条件)
ng-hide:用于隐藏或显示一个元素。
2.angular.js事件
ng-click指令用于声明一个点击事件。如下,对天气应用进行改进,使用查询按钮挂接点击事件,查询不同城市的天气状况:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src=&quo ...
1.ng-options指令与ng-repeat指令动态创建下拉列表
angular.js中,通过以上两种方式都可以动态创建下拉列表。但是,在实际使用上两者有所不同:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>se ...
mybatis是一款很不错的ORM框架,在项目中得到了很多应用。为了规范单元测试的习惯,特地基于Junit4为DAO层写了测试用例。基础测试从单表开始,数据表基本DDL为:
Create TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userName` varchar(50) DEFAULT NULL,
`userAge` int(11) DEFAULT NULL,
`userAddress` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
)
在 ...
jersey是一种RestFul Webservice开发框架,作为JSR311的开源实现,替代了原有的基于SOAP的Web服务。jersey提供了更为简洁的API,提供了更为简洁的开发模式。
在实际应用中,将基于maven构建开发环境,主要其他工具包括:jersey1.8、Junit4、jersey-json。使用webservice访问实现对数据库的CRUD模拟操作。
pom.xml核心片段:
<dependencies>
<dependency>
<groupId>junit</groupId>
<art ...
Spring在J2EE开发中已经应用得十分广泛,在进行实际开发时,往往需要对Service和DAO层进行单元测试。本文基于Spring框架,使用Jnit4进行单元测试。
项目结构主要包括:DAO层接口和实现,Service层接口和实现,配置文件及测试用例。
主要jar包通过maven进行管理,pom.xml关键配置信息如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xs ...
首先说一下背景,公司某项目年代久远,大致环境要求如下:不可使用servlet(配置文件更新管理杂乱);基本框架没有,大部分是原始的JSP2.0。这对习惯了热门框架的开发人员来说是一种非常糟糕的体验,不仅维护难度大,并且扩展性极差。但是,还是硬着头皮去做。
主要软件环境:POI3.1,Jsp2.0,JDK1.7
示例代码如下:
1.前端页面,提供一个下载链接
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding ...
在实际开发中,使用JDBC连接数据库的情况时有出现,在多层结构的应用中,使用DriverManager获取连接时,一个需要连接的操作对应一个数据库物理连接,每一次操作都会重新打开一个连接,在使用完毕后立即关闭。而频繁打开、关闭连接会造成系统及其不稳定,并发操作时经常会出现连接不足甚至是根本无法获取连接的情况。
c3p0连接池很好地解决了这个问题,解决思路是:在应用程序启动时,即建立足够的数据库连接用于待命,并将这些连接存放在池中等待使用。每次其它服务请求数据库连接时,不需要重新打开数据库连接,而是从池中取出已有的连接,使用完毕后,这个连接也不会被关闭,而是重新放入连 ...
联动选择下拉菜单是我们在开发中经常遇到的问题,一般来讲,三级联动是最为常见的。具体实现方式有很多种:比如每一次下拉选择change的时候发一次ajax请求调数据库加载,或者全部加载信息使用dom方式控制菜单。从性能上来说,第二种实现方式优于第一种,减少了数据库调用次数,并且也能很好地控制菜单显示速度。本文将使用第二种实现方式:
1表设计和准备数据:建立以下数据表并插入示例数据,用于反映学院、专业、班级的三个层级关系,使用lvl和parcode来表示层次关系。
create table grade_tab(
code varchar2(20) primary key,
...
PL/SQL提供了良好的异常处理机制,当程序运行出现错误时就会触发异常。异常被触发时,程序执行即终止,在PL/SQL块中提供了异常处理的部分,从而可以捕获一个异常进行特殊处理。
严格意义上来讲,一个完整的PL/SQL块应该具有以下结构:
declare
--declare variables
begin
--execute & exception raised
exception
--handle exception
end;
oracle数据库预先定义了一系列异常,以下是常见的一些:
ACCESS_INTO_NULL(ORA-06530):引用对象类型 ...