发表于: 2019-12-09 22:17:04
1 1118
今天完成的事:
今天页面写的差不多了,差一张首页了,图片太多了,不好弄。
明天的计划:
写完首页并开始写服务,把接口的服务写出来,然后今天学一学svn,方便以后上传代码。
遇到的困难:
日历用指令封装起来了,但是呐,如果我需要在日历上做某些操作的时候该怎么办?比如我要在日历上面添加一个点击事件,
app.directive('myHello',function () {
return{
restrict:'AEMC',
replace:true,
scope:false,
template:'<div id="data">\n' +
' <p>\n' +
' <span id="nianY"></span>\n' +
' </p>\n' +
'\n' +
' <h5 id="yue"></h5>\n' +
' <ul id="title">\n' +
' <li>日</li>\n' +
' <li>一</li>\n' +
' <li>二</li>\n' +
' <li>三</li>\n' +
' <li>四</li>\n' +
' <li>五</li>\n' +
' <li>六</li>\n' +
' </ul>\n' +
' <ul id="date">\n' +
' </ul>\n' +
' </div>',
link:function () {
var dat = new Date(); //当前时间
var nianD = dat.getFullYear();//当前年份
var yueD = dat.getMonth(); //当前月
var tianD = dat.getDate(); //当前天 这保存的年月日 是为了 当到达当前日期 有对比
add(); //进入页面第一次渲染
function add(){
document.getElementById('date').innerHTML = "";
var nian = dat.getFullYear();//当前年份
var yue = dat.getMonth(); //当前月
var tian = dat.getDate(); //当前天
var arr=["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"];
document.getElementById('nianY').innerHTML ='当前时间'+ nian+'年'+ (yue+1) + '月'+ tian + '日';
var setDat = new Date(nian,yue + 1,1 - 1); //把时间设为下个月的1号 然后天数减去1 就可以得到 当前月的最后一天;
var setTian = setDat.getDate(); //获取 当前月最后一天
var setZhou = new Date(nian,yue,1).getDay(); //获取当前月第一天 是 周几
for(var i=0;i<setZhou ;i++){//渲染空白 与 星期 对应上
var li=document.createElement('li');
document.getElementById('date').appendChild(li);
}
for(var i=1;i<=setTian;i++){//利用获取到的当月最后一天 把 前边的 天数 都循环 出来
var li=document.createElement('li');
li.innerText = i;
if(nian == nianD && yue == yueD && i == tianD){
li.className = "active";
}else{
li.className = "hover";
}
document.getElementById('date').appendChild(li);
}
}
}
}
}
比如我要操作这个日历的时候我是把操作的事件全部写进到这个指令里面还是单独的写出来,这个暂时还是没有一点思路,可能后续还需要继续的试一下这个东西,看看写进指令里和单独写出来的区别是什么,因为,我感觉不会有完完整整俩个相同的地方会用到一模一样的功能,所以,把功能单独写出来是好的,这样就可以重复的使用这个日历了。
今天的收获:
面向对象交流一下,有错误给我指出来。
JavaScript的所有数据都可以看成对象,那是不是我们已经在使用面向对象编程了呢?
当然不是。如果我们只使用Number、Array、string以及基本的{...}定义的对象,还无法发挥出面向对象编程的威力。
JavaScript的面向对象编程和大多数其他语言如Java、C#的面向对象编程都不太一样。如果你熟悉Java或C#,很好,你一定明白面向对象的两个基本概念:
原型:原型是对象的类型模板,例如,定义Student原型来表示学生,原型本身是一种类型,Student表示学生类型,但不表示任何具体的某个学生;
实例:实例是根据原型创建的对象,例如,根据Student类可以创建出xiaoming、xiaohong、xiaojun等多个实例,每个实例表示一个具体的学生,他们全都属于Student类型。
function Person(first, last, age, gender, interests) {
this.name = {
'first': first,
'last' : last
};
this.age = age;
this.gender = gender;
this.interests = interests;
这是一个原型,他具有一些基本的属性,这些属性呐都是一些没有具体值的,意思就是说你单独拿这些东西出来执行的时候是未定义。
var person1 = new Person('Tammi', 'Smith', 32, 'neutral', ['music', 'skiing', 'kickboxing']);
person1();
这是一个实例,实例一般都是根据原型来的,因为创建这个原型的时候就是相当于给实例创建一个模版出来,让这个实例按照这个模版需要的东西传一些实际的东西进去,比如,到底叫什么,多大,这写真实的属性。
评论