Angular常用语句

循环执行
$interval(function () {
$rootScope.Refresh();
}, 60 * 1000);
延时执行
$timeout(function () {
$rootScope.Refresh();
}, 3* 1000);
跳页并传参
$location.path('/repair_group').search({callBackUrl: '/line_off'});
//取地址
$location.path()
//取域名
$location.host()//"localhost"
//取端口
$location.port()//8080
//取参数
var searchObject = $location.search();// => {foo: 'bar', baz: 'xoxo'}
ng-class
<div ng-class="{'selected': isSelected, 'car': isCar}"></div>
<div ng-class="{true:'active',false:'other'}[item.ID==bzSelectItem.ID]" ></div>
item.ID==bzSelectItem.ID 为True时设置class为active ,false时为other
遍历数组
angular.forEach($scope.Defect.list, function (value) {
if ($scope.ProcessDefects.selectItem.FIRST_DEFECT_LEVEL_ID == value.FIRST_DEFECT_LEVEL_ID) {
isIn = true;
}
});
异步$q
test: function () {

var def = $q.defer();
console.log('调用成功,等待延时返回结果')
$timeout(function () {
def.notify("正在处理");
setTimeout(function () {
def.reject("处理完成");
}, 2000);
}, 500);
return def.promise;
}
var Q = {
test: function () {
    //通过调用  $q.defer() 可以构建一个新的 deffered 实例。
//deffered 对象用来将 Promise 实例与 标记任务状态(执行成功还是不成功)的 API 相关联。
var def = $q.defer();
console.log('调用成功,等待延时返回结果')
$timeout(function () {
def.notify("正在处理");
setTimeout(function () {
def.reject("处理完成");
}, 2000);
}, 500);
//重点 : 返回deferred.promise才能链式执行then方法
return def.promise;
}
log : function (msg) {
console.log(msg);
}
};
Q.canGet = true;
var B = Q.test().then(
Q.log,//成功-->处理完成
Q.log,//失败-->处理失败
Q.log //通知-->正在处理
);
注意. 当调用已有异步方法 直接返回then后,接收方法也可使用then连下去. 不用重新定义 $q.defer()
return http.go().then(function (response) {
if (response != undefined && response.data != undefined) {
return response.data;
}
})
接收者直接.then(a,b,c)即可.

 <!--ng-class赋值的三种方式-->
<!--1.直接赋值-->
<div class={{test}}”></div>
<!--2.由bool变量决定样式-->
<div ng-class="{true: 'active', false: 'inactive'}[isActive]">
</div>
<!--3.由不同变量决定样式-->
<div ng-class="{'selected': isSelected, 'car': isCar}">
</div>
//extend在普通js中是添加静态方法属性的, 但在Angular中不适用
//extend复制参数234对象中的属性去参数1中,参数1可以为空
var object = angular.extend({}, object1, object2)
//所有的对象都有一个prototype,它引用了对象。
//虽然原型对象初始化时是空的,但是你在其中定义的任何属性都会被该构造函数创建的所有对象继承。
//静态对象可以直接使用,无需也不能创建实例。
//静态方法、属性使用类名访问。
//非静态方法、属性使用实例名访问。
//原型prototype方法,非静态方法, 必需要类的实例化调用
//类名.prototype.方法名 = 方法实现;
//类名.prototype.属性名 = 属性值;
//extend添加静态方法属性不可在方法中添加, prototype添加非静态方法属性,被添加的对象需要实例化.










原文地址:https://www.cnblogs.com/Full--Stack/p/8041171.html