您的位置:首页 > Web前端 > JavaScript

angular js和一些个人总结小技巧

2017-02-18 18:56 295 查看
获取url中的网络后缀元素
function getParam(paramName) {
paramValue = "";
isFound = false;
if (this.location.search.indexOf("?") == 0 && this.location.search.indexOf("=") > 1) {
arrSource = unescape(this.location.search).substring(1, this.location.search.length).split("&");
i = 0;
while (i < arrSource.length && !isFound) {
if (arrSource[i].indexOf("=") > 0) {
if (arrSource[i].split("=")[0].toLowerCase() == paramName.toLowerCase()) {
paramValue = arrSource[i].split("=")[1];
isFound = true;
}
}
i++;
}
}
return paramValue;
}


等待DOM元素加载完毕 angular.element(document).ready(function () {

});
$scope.$on("$viewContentLoaded", function () {

})
自定义指令 使用当窗体变大变小的时候出现滚动条
MainModel.directive('resize', function ($window) {
return function (scope, element, attr) {

var w = angular.element($window);
scope.$watch(function () {
return {
'h': w.height(),
'w': w.width()
};
}, function (newValue, oldValue) {
scope.windowHeight = newValue.h;
scope.windowWidth = newValue.w;

scope.resizeWithOffset = function (offsetH) {

scope.$eval(attr.notifier);

return {
'height': (newValue.h - offsetH) + 'px'
//,'width': (newValue.w - 100) + 'px'
};
};

}, true);

w.bind('resize', function () {
scope.$apply();
});
}
})
随后只需在html页面中使用resize指令即可 并且加上resizeWithOffset的宽度即可
angular js自定义指令 这个写的较好 http://www.cnblogs.com/Kavlez/p/4288885.html
封装http服务
通过$q的服务 将成功的封装到defer.resolve()中,将错误的封装到defer.reject()中 这样即可
MainModel.factory("httpService",
function ($http, $q) {
return {
post: function (suburl, params) {
var defer = $q.defer();
$http({
method: 'POST',
params: params,
url: jsapi.getDomain() + suburl,
}).success(function (data) {
if (data.retcode == 0) {
defer.resolve(data.items);
}
else
defer.reject(data.message);
}).error(function (data) {
defer.reject(data);
});
return defer.promise;
},
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: