angularJS雙向綁定和依賴反轉

1、雙向綁定:html

UI<-->數據app

數據->UI (數據改變UI跟着變)函數

UI->數據 (UI改變數據跟着變)雙向綁定

 

數據改變->UI改變原理:htm

監聽數據是否改變,若是改變動新UI數據。ip

 

UI改變->數據改變原理:get

<html>input

<body>string

<input type="text" name="name" value="" id="text1" ng_model="a">it

<script>

window.onload = function(){

var a='';

var oTxt = document.getElementById('text1');

oTxt.oninput = function(){  //UI值改變數據改變

a = oTxt.value;

}

}

</script>

</body>

</html>

 

 

2、依賴注入:

函數能夠本身決定須要什麼數據或者多小個數據,而不是外面傳什麼就用什麼。

2.一、調用者決定給多小個參數

<script>

function show(a,b,c){

console.log(arguments.length);

}

show(1); //調用者只給1個參數,調用者決定參數的給予。

</script>


2.二、依賴注入(依賴反轉):函數要求要多小參數,就給多小。 就像show(a,b,c)要求3個參數

<script>

function show(a,b,c){

console.log(arguments.length);

}

var scope = {a:12,b:15,c:99,qq:55,i:99};   //假設是函數須要的參數

//實現依賴反轉二個步驟
//一、知道show要什麼參數

var str = show.toString();

str=str.split('{')[0].match(/\(.*)\/)[0].replace(/\S+/g,'');

str=str.substring(1,str.length-1);

var arr=str.split(',');

//二、給它相應值

var args=[];

for(var i=0;i<arr.length;i++){

args[i]=scope[arr[i]];

}

console.log(args);

show.apply(null,args);

</script>

相關文章
相關標籤/搜索