发表于: 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初步



返回列表 返回列表
评论

    分享到