用於flex中entity物件與display物件之間的資料雙向動態繫結,支援textinput、datefield、combobox。
1package
controller.utils;
25/**
26* 儲存監控物件的控制代碼
27* key: entityobj
28* value: changewatcher
29*/
30private
static
var handlelist:imap
=new
hashmap();
3132
/**33
* 物件與元件的資料動態雙向繫結
34*
@param
entityobj entity object
35*
@param
displayobj mx控制項
36*
@param
type 控制項型別,如:'mx.controls::textinput'
37* @exclude 需要排除的property
38* @bidirectional 是否做雙向繫結(如果為false,那麼只做entity到displayobject的繫結)
39*
@param
commitonly
40*/
41public
static
function bidirectionaldatabind(
42entityobj:object,
43displayobj:displayobject,
44exclude:array
=null,45
bidirectional:boolean
=true,46
type:string='
all'
,
47commitonly:boolean
=false
):void52}
else
6970
//檢查該property是否存在
71if
(beanutils.checkpropertyexist(entityobj,proname)
==false)74
75try
8182
var cw:changewatcher
=changewatcher.watch(entityobj,proname,setdata);
83handleobject(handlelist.getvalue(entityobj)).addchangewatcher(proname,cw);
8485
bindingutils.bindproperty(entityobj,proname,displayobject(displayobj[proname]),prop,commitonly);86}
else91}
catch
(err:error)94}
95}96}
9798
/**99
* 清空監控物件的控制代碼集合
100*/
101public
static
function clean():
void
106107
handlelist.clear();
108}
109}
110111
/**112
* 監聽combobox事件的變化
113*
@param
obj114
*/115
private
static
function setdata(obj:propertychangeevent):
void
119var ho:handleobject
=handlelist.getvalue(obj.source);
120var cw:changewatcher
=ho.getchangewatcher(obj.property);
121122
if(obj.newvalue is string)
else
131}
132133
/**134
* 返回元件type對應的需要填充的屬性名稱
135*
@param
type
136*
@return
137*/
138private
static
function getsiteprop(type: string): string
143}
144return
null
;145
}146
}147
}148
149import
mx.binding.utils.changewatcher;
150import
com.ericfeminella.collections.imap;
151import
com.ericfeminella.collections.hashmap;
152internal
class
handleobject
160161
public
function addchangewatcher(propname:object, cw:changewatcher):
void
164165
public
function getchangewatcher(propname:object):changewatcher
168169
public
function clean():
void
173174
properitylist.clear();
175}
176}
1771
package
controller.utils
2728
var objinfo:object
=objectutil.getclassinfo(targetobj);
29for
each(var name:string in objinfo.properties)33}
3435
return
false;36
}37
vue專案 父元件和子元件之間資料的雙向繫結
vue裡面子元件通過props可以獲取父元件的資料,但是我們在子元件裡無法直接修改props裡傳遞的父元件變數。當然你可以使用vue的子元件事件機制,通過emit來實現反向傳遞資料的能力。但是我自個用的時候總感覺寫好乙個元件之後,用的時候還要在父元件裡加上對應的事件處理很不爽。所以我一般是用下面的方...
Vue核心知識 Vue的元件之自定義雙向繫結
實現資料雙向繫結 在元件內,新增 props 元件修改資料時 emit 事件,並把改的新值傳出去 從而實現資料的雙向繫結。import vue from vue const component new vue el root data template value value input value...
Vue 元件的雙向資料繫結
我們之前已經有學過在普通的dom元素上通過v model指令來進行簡單的雙向資料繫結,一般我們會在表單元素上使用這個指令.text v model value div let vm newvue script 所謂的雙向資料繫結就是顯示資料發生變化,vue 中的資料也隨之發生變化,vue中的資料發生...