angularjs 常用方法


一 angular的copy和extend

1.angular.extend() 
angular.extend():依次將第二個參數及后續的參數的第一層屬性(不管是簡單的屬性還是對象)拷貝,賦給第一個參數的第一層屬性。也就是說,如果是對象,那么引用的是同一個對象,並返回第一個參數對象。 
用法1:angular.extend(b,a); 將a拷貝給b 
將a拷貝給b 
看一個具體的例子:

var a = {
  name : 'bijian',
  address : 'shenzhen',
  family : {
    num : 6,
    amount : '80W'
  }
};
var b = {};
var r = angular.extend(b, a);
console.log('a:' + JSON.stringify(a));
console.log('b:' + JSON.stringify(b));
console.log('r:' + JSON.stringify(r)); 

b.address = 'hanzhou';
b.family.amount = '180W';
console.log('a:' + JSON.stringify(a));
console.log('b:' + JSON.stringify(b));
console.log('r:' + JSON.stringify(r));

結果:

a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}
b:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}
r:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}
a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"180W"}}
b:{"name":"bijian","address":"hanzhou","family":{"num":6,"amount":"180W"}}
r:{"name":"bijian","address":"hanzhou","family":{"num":6,"amount":"180W"}}

用法2:angular.extend(b, a, z); 相繼將對象a,z拷貝賦給b 
舉個例子:

var a = {
  name : 'bijian',
  address : 'shenzhen',
  family : {
    num : 6,
    amount : '80W'
  }
};
var z = {
  family : {
    amount : '150W',
    mainSource : '經營公司'
  }
};
var b = {};
var r = angular.extend(b, a, z);
console.log('a:' + JSON.stringify(a));
console.log('b:' + JSON.stringify(b));
console.log('r:' + JSON.stringify(r)); 

b.address = 'hanzhou';
b.family.amount = '180W';
console.log('a:' + JSON.stringify(a));
console.log('b:' + JSON.stringify(b));
console.log('r:' + JSON.stringify(r));

結果:

a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}
b:{"name":"bijian","address":"shenzhen","family":{"amount":"150W","mainSource":"經營公司"}}
r:{"name":"bijian","address":"shenzhen","family":{"amount":"150W","mainSource":"經營公司"}}
a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}
b:{"name":"bijian","address":"hanzhou","family":{"amount":"180W","mainSource":"經營公司"}}
r:{"name":"bijian","address":"hanzhou","family":{"amount":"180W","mainSource":"經營公司"}}

2.angular.copy() 
angular.extend()是淺拷貝,而angular.copy()是深拷貝。這兩個有什么區別呢,看同樣的例子。 
用法1:angular.copy(a,b); 將對象a中的屬性深度拷貝給b 
這里a和b不會相互依賴,a和b是完全脫離關聯的

var a = {  
    name : 'bijian',  
    address : 'shenzhen',  
    family : {  
        num : 6,  
        amount : '80W'  
    }  
};  
var b = {};  
var r = angular.copy(a, b);  
console.log('a:' + JSON.stringify(a));  
console.log('b:' + JSON.stringify(b));  
console.log('r:' + JSON.stringify(r));  
  
b.address = 'hanzhou';  
b.family.amount = '180W';  
console.log('a:' + JSON.stringify(a));  
console.log('b:' + JSON.stringify(b));  
console.log('r:' + JSON.stringify(r));  

結果:

a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}  
b:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}  
r:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}  
a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}  
b:{"name":"bijian","address":"hanzhou","family":{"num":6,"amount":"180W"}}  
r:{"name":"bijian","address":"hanzhou","family":{"num":6,"amount":"180W"}} 

用法2:var r=angular.copy(a); 將對象a對象的屬性深度拷貝給對象r

var a = {  
    name : 'bijian',  
    address : 'shenzhen',  
    family : {  
        num : 6,  
        amount : '80W'  
    }  
};  
var r = angular.copy(a);  
console.log('a:' + JSON.stringify(a));  
console.log('r:' + JSON.stringify(r));  
  
a.address = 'hanzhou';  
a.family.amount = '180W';  
console.log('a:' + JSON.stringify(a));  
console.log('r:' + JSON.stringify(r)); 

結果:

a:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}  
r:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}  
a:{"name":"bijian","address":"hanzhou","family":{"num":6,"amount":"180W"}}  
r:{"name":"bijian","address":"shenzhen","family":{"num":6,"amount":"80W"}}  

 

二 angular判斷數據類型

方法 說明
angular.isString() 判斷是否是字符串
angular.isObject() 判斷是否是對象,注意,它不把null視為對象,數組是對象
angular.isArray() 判斷是否為數組
angular.isDtae 判斷是否是時間
angular.isNumber 判斷是否是數字
angular.isDefined() 判斷是否存在
angular.isUndefined() 判斷是否是undefined
angular.isFunction() 判斷是否為函數
angular.isElement() 判斷是否是一個DOM元素或者包裝的jQuery元素
var div = angular.element("#findMe");
var str = "1";
var num = 1;
var obj = { value: 1 };
var arr = [obj, str];
var date = new Date();
var fn = function(){
     // your code
};
var divIsElement = angular.isElement(div);  //divIsElement = true
var strIsString = angular.isString(str);  //strIsString = true
var numIsNumber = angular.isNumber(num);  //numIsNumber = true
var objIsObject = angular.isObject(obj);  //objIsObject = true
var arrIsArray = angular.isArray(arr);  //arrIsArray = true
var dateIsDate = angular.isDate(date);  //dataIsDate = true
var fnIsFunction = angular.isFunction(fn);  //fnIsFunction = true
var nullIsDefined = angular.isDefined(null);  //nullIsDefined = true
var undefinedIsUndefined = angular.isUndefined(undefined);  //undefinedIsUndefined = true 

 

三 angular.forEach()

var array = ['a','b','c'];
angular.forEach(array,function(value,i){
 console.log(value,i);
 console.log(this);
});

遍歷數組,對象也可以。value表示值,i表示索引,而this表示window對象。

 

四 angular的json和字符串轉換

angular為我們提供了原生的JSON.parse()和JSON.stringigy()方法。 
angular.fromJson():字符串轉json對象 
angular.toJson():json對象轉字符串

var json = '{"name":"liSi", "password":"321"}';
var obj = angular.fromJson(json);


var obj ={
  name:"liSi", password:"321"
}
var str = angular.toJson(obj, true);

 

五 大小寫轉換

angular.uppercase('hello');
angular.lowercase('HELLO');

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM