在講解List以前,咱們先介紹一下Morn組件賦值功能ide
界面邏輯開發過程當中,常常會涉及到動態更改UI屬性,好比:ui
界面有一個按鈕,一個多選框和一個文本,分別命名爲myButton,myCheckBox,myLabelthis
假如你須要更改按鈕的label屬性爲」按鈕」,同時讓CheckBox變成選中狀態,而且還要修改Label組件的內容,傳統的作法是先取出來,而後再更改其屬性,代碼以下:url
var myButton:Button = getChildByName("myButton") as Button;
spa
myButton.label = "按鈕";
var myCheckBox:CheckBox = getChildByName("myCheckBox") as CheckBox;
myCheckBox.selected = true;
var myLabel:Label = getChildByName("myLabel") as Label;
myLabel.text = "我是label";
在Morn中,只需一行代碼便可實現上述功能code
this.dataSource = {myButton:"按鈕",myCheckBox:true,myLabel:"我是label"};
對象
格式:容器.dataSource = {組件名:默認屬性值,組件名:默認屬性名。。。}blog
是否是很是簡單呢。ip
賦值,簡化了邏輯操做,把原來對UI組件獲取,設置等操做進行封裝,將開發者的焦點集中到對數據操做上,大大簡化了UI開發的複雜性和工做量,使用起來很是方便,能大大提升工做效率。開發
因此,Morn中大部分UI邏輯都變成了賦值操做,就是這麼簡單。
上述賦值方式爲默認屬性賦值,只更改組件的默認屬性,一個組件只有一個默認屬性,好比Button的默認屬性是label,CheckBox的默認屬性是selected
Button,LinkButton,RadioButton默認屬性均爲label
Label,TextInput,TextArea默認屬性均爲text
ComboBox,Tab,RadioGroup,ViewStack默認屬性均爲selectedIndex
Clip,FrameClip默認屬性均爲frame
ProgressBar,Scroll,Slider默認屬性均爲value
CheckBox爲selected,Image爲url
上述默認屬性賦值簡單好用,可是不少狀況下,不單單更改組件的默認屬性,還會更改其餘屬性,那麼能夠經過自定義賦值實現,仍是上面例子,更改賦值以下:
this.dataSource = {myButton:{label:"按鈕",labelBold:14},myCheckBox:{selected:true,alpha:0.5}};
上述操做,同時更改了myButton的label和labelBold屬性,也同時更改了myCheckBox的selected和alpha屬性
格式:容器.dataSource = {組件名:{屬性:屬性值,屬性:屬性值},組件名:{屬性:屬性值,屬性:屬性值}。。。}
容器的賦值和非容器賦值不太同樣:
非容器賦值,key對應的組件的屬性名。容器賦值,key對應的是子對象的名稱
好比頁面中有個Box,var定義爲box1,Box內部有個Button,name爲button1,賦值表達式以下:
box1.dataSource = {button1:{label:」按鈕」,alpha:0.5}}
格式:容器.dataSource = {子對象名:{屬性:屬性值,屬性:屬性值}。。。}
由於list是一個列表,list賦值和上面不太同樣,list賦值對象爲一個Array,而不是object
例以下面list
list.dataSource = [{label1:"我是label1",checkBox1:true},{label1:"我是label2",checkBox1:true}...];
格式:list.dataSource = [item0賦值,item1賦值,item2賦值。。。]
同時也能夠設置list的array屬性進行賦值,效果同dataSource
是否是很是簡單但強大呢,下節繼續爲你們講解《List的詳細使用用法》