Data binding BindinUtils.bindProperty方法中的函数/三元运算符
我的mxml中有这样一个标签Data binding BindinUtils.bindProperty方法中的函数/三元运算符,data-binding,binding,flex4,ternary-operator,Data Binding,Binding,Flex4,Ternary Operator,我的mxml中有这样一个标签 <s:Label id="lblChange" text="{_symbol.change>0 ? '+' + _symbol.change:_symbol.change}" /> 同样,可以正常工作,但没有if/else情况。所以我想我可以写一个函数来实现这一点 private function checkValue(val:Number):String { if (val > 0) return "+"+
<s:Label id="lblChange" text="{_symbol.change>0 ? '+' + _symbol.change:_symbol.change}" />
同样,可以正常工作,但没有if/else情况。所以我想我可以写一个函数来实现这一点
private function checkValue(val:Number):String {
if (val > 0)
return "+"+val;
else
return val as String;
}
并将其用作bindProperty调用中的属性,而不是更改
.bindProperty(lblChange, "text", _symbol, checkValue(_symbol.change));
然而,bindProperty似乎只接受字符串。那么,有什么方法可以绕过这个“功能”?试试这个:
试试这个:
.bindProperty(lblChange, "text", _symbol, checkValue(_symbol.change));
BindingUtils.bindSetter(checkValue, _symbol, "change");
private function checkValue(object:Object):void {
var val:Number = object as Number;
if (val > 0)
lblChange.text = "+"+val.toString();
else
lblChange.text = val.toString();
}