发表于: 2017-06-02 23:10:52
1 1232
今天完成的事情:
研究明白了省市县三级联动的自定义指令;
研究明白了自定义过滤器怎么写;
明天计划的事情:
学习svn;
继续后台的检查与复用;
遇到的问题:
自定义指令的ng-model无法在控制器中获取到,后来研究是因为自定义指令有个$scope属性,默认是false,就是可以在控制器里读取到,改成false然后在functions里面加上$scope就好了;
三级联动的过滤器不好写,之前写的自定义过滤器都是一些数据量很小的东西,手写一个数组就可以了,但是省市县三级联动的数据量非常大,只能原封不动的复用常量,只能自己想办法,刚开始发现每一个id其实都是按顺序排的,所以可以按照顺序写过滤器,但是考虑到这并不算是解决问题,就又琢磨了很长时间,学会了一个.filter函数,根据这个函数有了思路,就是根据获取到的id从数据中过滤出相对应的一项,然后返回出id对应的名字完美解决;
解决了过滤器的问题,但是浏览器总是有报错
三个过滤器每个都报错,循环4次,非常奇怪的数字,功能是正常的,没有任何问题,暂时不懂原因在哪里;
收获:
省市县三级联动的原理就$watch监听数据,当数据有变动,就根据新的数据变更后面的项,也就实现了省市县三级联动;
过滤器的写法
app.filter("shi", function (areaData) {
return function (city) {
a=areaData.cities.filter(function (item) {//过滤的对象是areaData.cities,item是对象中的每一项
return item.CityID === +city;//遍历所有的城市,返回符合条件的对象
});//结果是返回数据中city.ProID == city的所有城市
return a[0].CityName
}
});
省市县数据的结构:
"provinces": [
{"ProID": 1, "ProName": "北京市", "ProSort": 1, "ProRemark": "直辖市"},
评论