之前是写angularJS的,现在转到Vue,一开始傻傻滴以为它也自带了http服务,然而并非如此。
在Vue1.0的时候有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2.0 之后,官方就不再更新 vue-resource。
权衡利弊之后最终选择了axios,毕竟辣么哆人在用它,也能满足项目需求。下面记录一些使用过程中遇到的问题。
官方源码及文档:https://github.com/axios/axios
这里还有个不错的中文“说明书”:vue2.0项目实战(3)使用axios发送请求
具体使用方法以及拦截器...
1.伪元素first-letter设置首字样式
/*首字下沉示例*/
p::first-letter{float:left;font-size:3em;line-height:1;color:#f00}
2.伪元素first-line设置段落第一行样式
p::first-line{color:#f00;font-weight:bold}
3.:nth-child(odd/even)选中奇偶行
当然也可以使用:nth-child(2n-1)和:nth-child(2n)实现
4.:not排除选择器
/*除开type为password之外的input...
1.html中直接写(不建议)
<script type="text/javascript">
angular.element(window).bind('load', function() {
alert('1');
});
alert('2');
</script>
2.在controller里面利用$on或者$watch
(function(){"use strict";
angular.module('myApp')
.controller('testSth', ['$scope', f...
angular.element()将DOM元素或者HTML字符串封装为一个jQuery元素。
格式:angular.element(element);(括号中的element为包装成jquery对象的html字符串或者dom元素)
$document和angular.element(document)是一样的,是一个整体的dom结构树,包含jqlite的所有方法,另外$document[0]和原生JS的document等效(使用时不要忘记注入$document哦)
如果jQuery可用,angular.element就相当于jQuery的$。如果不可用,angular.eleme...
AngularJS按照发布/订阅模式设计了其事件系统,使用时需要“发布”事件,并在适当的位置“订阅”或“退订”事件,就像邮箱里面大量的订阅邮件一样,当我们不需要时就可以将其退订了。具体到开发中,对应的就是$scope和$rootScope的$emit、$broadcast和$on方法。
0、发布
$broadcast和$emit用于发布事件,他们将事件名称和事件内容发布出去,就像是高考榜单一样,事件名称相当于考生的名字,而事件内容相当于考生的成绩等信息:
$scope.$broadcast(eventName,args)
$scope.$emit(eventNa...
在一些特定情况下,我们只需要让某个函数只执行1次或n次,比如循环或者定时执行等。
1.最简单的一种
var ifRun = true;
var myFunction = function(){
if(ifRun){
console.log("i'm just do once");
ifRun = false;
}
}
myFunction();//i'm just do once
myFunction();//nothing
myFunction();//nothing
2.使用apply()劫持一下再做次数判断
function just...
常用的动态加载js文件有以下几种方式:
1.直接document.write
document.write("<script src='test.js'><\/script>");
2.动态创建script元素
function loadJS(jsUrl) {
var _doc = document.getElementsByTagName('head').item(0),
script = document.createElement('script');
script.setAttribute('type',...
JavaScript的数据类型分为六种,分别为null,undefined,boolean,string,number,object。object是引用类型,其它的五种是基本类型或者是原始类型。我们可以用typeof方法打印来某个是属于哪个类型的。不同类型的变量比较要先转类型,叫做类型转换,类型转换也叫隐式转换。隐式转换通常发生在运算符加减乘除,等于,还有小于,大于等。
typeof '11' //"string"
typeof(11) //"number"
'11' < 4 //false
一、基本类型的转换
1.加减乘除
1.字符串加数,数...
AngularJS框架定义了自己的前端路由控制器,通过不同URL实现单面(ng-app)对视图(ng-view)的部署刷新,并支持HTML5的历史记录功能。默认状态下,是不启动HTML5模式的,此时URL中会包含一个#号,用来区别是AngularJS管理的路径还是WebServer管理的路径。
某些情况下,#号并不不太友好。比如美观度,还有有的地方不支持这种带#号的URL。下面记录下去掉#号的方法:
1.入口文件index.html中增加<base>标签
<!DOCTYPE html>
<html>
<head>
<...