发表于: 2017-05-13 22:25:32
1 1020
今日完成:
完成前台 页面的路由搭建及跳转,angularJs的框架搭建基本完成。将框架分为控制器,服务,路由等等来搭建。之前的任务基本都在controller里边做完的,所以重新调整思路,把需要的数据,方法一一拆开,不写在控制器里边,还是花了些时间。
然后其余的时间基本都在踩坑,主要是$resource这个坑。。。
明日计划:
完成首页的所以js代码。
问题:
1.下午基本都在$resource这个坑里。
最开始,无论我怎么调,怎么注入都报错。错误提示:Module 'ngResource' is not available 。查了很多外文的网站,都是说我没有引入angular-resource造成的。但是我明明引入了的。
最后,抱着试试的心态,换了个低版本的angular-resource,然后就好了。。。
2.不太熟悉 $resource的语法。开始直接用$resource.get(url),但是不行。查了资料才知道$resource并不是用来直接与后台通信的,所以不能直接调用。它是用来创建同服务端交互对象的,
var profession=$resource(url);
profession.get
这样就可以用了(最简单的例子,没有传参没有回调)
$resource是被我写在service里的,在调用它以及它的回调函数时,出了点小问题,可能还是我的基础不够牢固吧。
我在控制器中是直接调用$resource的:
ajax.getProfession()
。这样写是可以直接调用并执行的。
然后,我按照$resource自身的回调函数写法,将service改为:
profession.get(function(response){
。。。}
这时候,浏览器报错,直接提示我getProfession is not a function。
无奈就只有取消在service中使用回调,直接在控制器中写:
ajax.getProfession(function(response){
。。。
});
3.动态获取到数据后,我的轮播图崩掉了~~。
明天换一个轮播的写法,现在这个只适合写死的数据
收获:
1.$resource 的用法,太坑了。
$resource 不是直接通过$resource服务本身同服务器通信,而是一个创建资源对象的工厂,用来创建同服务端交互的对象。
$resource不仅仅对常见的五种请求进行封装,还可以对$resource进行扩展,这个是我认为它比$http强大的地方。扩展的方法是给$resource传入第三个参数,这个参数是一个对象。
2.controller as的用法。
之前看资料就总结过,今天实际写了一下,它可以直接在路由配置中,定义: as:... 来实现。
在使用this时,可以先定义 var xx = this ,然后就可以通过xx来获取控制器内部函数或者对象的值了。
评论