发表于: 2017-05-31 23:48:32
5 1347
今天做了的事:
完成任务7的大部分(使用$http服务进行提交数据),准备小课堂(angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?)却未果。
明天要做的事:
学习一下ng-repeat,完成任务七
讲小课堂
今天遇到的问题:
1.昨天提到了GET方法使用params传输数据,POST方法使用data传输数据,但实际上这是不准确的。
因为昨天使用data传输数据踩坑了,传过去是{object,object}这样的两个对象。
师兄们普遍的做法是使用params传输
但是我还是有点不解,于是就查了我昨天说过的transformRequest,这实际上一个转化请求类型的方法。百度资料得到这样的代码:
transformRequest:function (obj) {
var str = [];
for (var p in obj) {
str.push(encodeURIComponent(p) + “=” + encodeURIComponent(obj[p]));
}
return str.join(“&”);
}
后得知这串代码实际上是用于把对象或者字符串序列化,跟params是一样的,所以费什么劲呢。。。。。
完整代码如下:
var app = angular.module('intoWife',[]);
app.controller ('mine',function($scope,$http) {
$scope.signIn = function () {
$http({
method: "POST",
url: "/carrots-admin-ajax/a/login",
data: {
name:$scope.name,
pwd:$scope.pwd
},
headers: {
'Content-Type':'application/x-www-form-urlencoded'
},
transformRequest:function (obj) {
var str = [];
for (var p in obj) {
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
}
return str.join("&");
}
}).then(function successCallback (data) {
if(data.data.code===0) {
window.location.href = "index.html"
}
else if(data.data.code===-5003) {
document.getElementById("view").innerHTML="本站立足于美利坚合众国,针对年满18周岁非大陆全球华人开放,受北美法律保护。未经授权禁止复制或建立镜像。";
}
});
}
});
2.昨天准备小课堂,心想这几个指令还不简单,然后就5点多开始写用于展示的例子。然后第一个ng-if,就想做一个可以展示和ng-show,ng-hide之间区别的例子,写到8点也没写完(中间吃了个饭),今天补今天补。这件事情告诉我们小课堂一定要提前准备,血的教训。
感悟:
写小课堂的例子的时候我就发现我还是习惯用js修改DOM增添属性之类的操作,对于ng没有一种知道怎么用之解决问题的清晰认知,还是用得少。就比如我用ng-init给ng-if一个初始值true,我想怎么通过触发某个事件来吧true改成false,一开始毫无头绪,后来意识到用controller.
ru…ruby是?!
评论