一个基于vue的h5项目,并使用了h5 history模式(即去掉了#号),并同时兼顾公众号内嵌(安卓环境、IOS环境)、安卓app内嵌和基本的网页使用。主要入口为公众号的菜单,当然也可以是直接点链接进入,亦或者扫码进入,也可以是从已经分享出来的链接点击再进入等等。
由于是基于vue的SPA应用,所以每个页面的标题和描述都是一样的。尽管做了动态更改title和desciption,但分享出去后的显示效果仍然达不到要求,而且ios版本的微信分享出去的链接也存在不准确的问题,基于此,决定使用微信的JSSDK。微信JS-SDK说明文档https://mp.weixin.qq.com/wi...
之前是写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.字符串加数,数...