发表于: 2017-03-18 09:14:37
1 538
完成的事情:
cookie的尝试使用,url中path部分添加变量尝试,oclazyload加载初步成功
计划的事情:
浏览复盘项目页面原型,写复盘项目方案
问题:
cookie:
直接document.cookie = "name="+value;则可完成设置
document.cookie = "name=" + value + ";" + "expires="+date.toGMTString;
可设置cookie保存时间,其中date为js中的new Date变量,通过setTime()方法改变,
大于当前时间则为保存时间,date.setTime(date.getTime()+7*24*3600*1000);(保存7天),
小于当前时间则为删除cookie,date.setTime(date.getTime()-10000);。
var str = document.cookie获取全部cookie,
var aStr = document.cookie.split(';');分成数组
然后查询目标名称,获取名称后面的值。(注意名称前面的空格符号)
function getCookie(str){
var aStr = document.cookie.split(';');
for(var i=0; i<aStr.length; i++){
while(aStr[i].indexOf(' ')!=-1){
aStr[i] = aStr[i].replace(' ','');
}
var arr = aStr[i].split('=');
if(arr[0] == str){
return arr[1];
}
}
}
ui-sref:
使用方式:
ng-model="value"
a标签属性内ui-sref="page2({user:value});
对应的ui-router方法中
.state("page2", {
url:"/:user/page2",
templateUrl: "page2.html",
controller:'personCtrl',
controllerAs:'vm'
})
通过改变value的值,可实现a标签链接的变化,同时路由中能够正常读取链接。
但路由在初始化时候无法把:user的参数写到网址当中,显示成//page2,只好如此处理一下:
if($location.path() == "//page1"){$state.go("page1",{user:$scope.user});}
(有点不太好的感觉)
在初始化完成以后,通过a标签切换则不再有问题。
oclazyload:
var app = angular.module('angularJS',['ui.router','oc.lazyLoad']);
和
.state("page1", {
url: "/:user/page1",
templateUrl: "page1.html",
controller:'personCtrl',
controllerAs:'vm',
resolve:{
loadMyCtrl: ['$ocLazyLoad', function($ocLazyLoad) {
return $ocLazyLoad.load('appjs/page1.js');
}]
}
})
即可,但是在使用过程中,发现些问题:
若首页去掉app.controller('personCtrl',function(){})会出现错误
路由中controller:'personCtrl',进行传参,每次传递都会触发首页中的初始化程序
猜测:.controller('',function(){})方法与.directive类似,在controller使用一次,就调用该方法一次,并非单纯的“初始化”程序。
路由跳转时候,controller:'different personCtrl'传递不一样的controller实现单独调用。
或者app.controller('',function(){})可以在同一初始化中设置不同的''值多次使用?像.directive一样,在路由传参时候实现准备好的方法。
其实就是资料看得不够多,好好学,好好试。
收获:
cookie,ui-sref,oclazyload初步
评论