最近在弄一個東西,明明就很簡單的。
不知道爲啥有個坑,雙向綁定,不過當有個數組爲空時,它不會發送空的數組,而是不發送。
這就坑爹了。致使總是刪不掉。
處理了下,改爲驗證爲空時,發送'[]‘字符串。
成功。
可是avalon綁定ms-repeat時只能綁數組和對象。
因此在獲取後對它操做。進行轉換成空數組。
可是一直都不成功。
一直都會提示只能綁數組或對象。
參考了其餘的例子,並無什麼區別。
一樣是這樣操做。可就是不行。
今天在調試時,忽然發現,是在轉換時出現了問題。
而後換成直接操做引用過來的對象,而不是賦值後我新定義的對象。
由於賦給它的值是一個字符串,而不是一個對象。
【雖然在js裏,全部的都是對象 = =。但這有點坑窩,彷佛。】
這樣就不會出現這樣的錯誤了。
原來,基本類型是沒有引用傳遞的。而數組、對象、函數則能夠。
以前一直搞不清,js幾時的是值傳遞,幾時是引用傳遞。
參考:
http://blog.sina.com.cn/s/blog_52132c010102wa81.html 感受評論比較簡潔
5種基本數據類型:number/string/null/boolean/undefined
引用類型:數組/函數/對象
function chainStore()
{
var store1='Nike China';
var store2=store1;
store1='Nike U.S.A.';
alert(store2); //Nike China
}
chainStore();
基本數據類型的引用及再次賦值操做,等因而:複製了一個值,也就是內存裏有兩塊區域,分別保存了相同的兩個值。var store1='Nike China'; 把Nike China賦值給了store1。而var store2=store1; 又開闢一個新內存地址,把Nike China複製,複製而不是賦值,給了store2。如今呢,內存裏有兩塊區域:store1和store2,都保存的是Nike China。這個就好理解了吧。因此store1隨便修改,store2仍是保持不變。
而引用類型,舉例:function chainStore() {
var store1=['Nike China'];
var store2=store1;
alert(store2[0]); //Nike China
store1[0]='Nike U.S.A.';
alert(store2[0]); //Nike U.S.A.
}
chainStore();
爲何會兩次輸出store2結果不一樣呢?由於:這個是數組,屬於引用類型。雖然有store1和store2兩個變量,可是在內存中(引用地址)是同一個地址,這個知道指針概念的同窗會很好理解。因此第一次var store2=store1; 其實只把引用地址交給了store2.因此兩個store共享同一個【Nike China】,而當修改了store1的時候,那麼他們共享的內容就發生了變化(由於一共就這一個東西,而不是各自有一個),致使store2輸出的時候也發生了變化,變成了【Nike U.S.A.】
以上,簡單舉例引用類型,和基本數據類型