原文地址:http://www.jmingzi.cn/?post=13
初学Anjularjs两天了,一边学一边写的留言板,只有一级回复嵌套。演示地址
这里总结一下学习的过程和笔记。另外,看看这篇文章也是会有收获的。
我觉得AngularJs就是实现了php的很多功能和方法,除了不能直接操作数据库以外,他有很多插件可以提供使用,很强大。
我遇到的问题:
1、使用$http.post()方法提交到php的时候,php的接收语句是这样的:
1 $shuju = file_get_contents('php://input', true);
搜了好多,都没给出合理的解释,只知道这样做是可以的。我们通常用表单提交过去的数据用$_POST接收,那是因为提交的header不同导致的上述原因。
我们用AngularJs提交过去的是JSON格式数据,header是Content-Type: application/json
而form表单提交过去的是:multipart/form-data
解决办法当然有2个,一个就是上述的办法可以接收,$_POST = json_decode(file_get_contents('php://input'),true);
还一种就是修改header, $httpProvider.defaults.headers.put['Content-Type'] =
'application/x-www-form-urlencoded';
查看文章
另外,做表单的提交的时候,看看这篇文章也会有所帮助;
2、遇到的第2个问题就是路由传参数
由于我没有使用ui-router插件,原生的ng-router是不可以进行路由嵌套的,但目前我不需要嵌套路由,只需要传递简单的多个参数。其实也不难,如下写法:
.when('/replay/:cid/:name', { templateUrl : "tpl/form.html", controller : "formCtrl" })
在控制器中进行接收即可
liuYan.controller('formCtrl', function($scope, $http, $routeParams){ $routeParams.cid; }
还有很多可以参考官方的API文档,以及查看已经实现了的UI
教程网址也有一个:http://www.yiibai.com/angularjs/angularjs_custom_directives.html
还有一篇关于JSON的:http://www.ruanyifeng.com/blog/2009/05/data_types_and_json.html