var output = myJSON; //from succss:function(myJSON)
var html = '';
$.each(output,function(key,value){
html +='<tr>';
html +='<td>'+ value.name + '</td>';
html +='<td>'+ value.mobile + '</td>';
html +='<td>'+ value.id + '</td>';
html +='</tr>';
});
$('.append_data tbody').append(html);
<mx:Button
enabled = "{this.myFunction(this.myVariable)}"
>
или встроенный:
<mx:Button
enabled = "{(function(arg:Object):Boolean{ ... })(this.myVariable)}"
>
Согласно документам Flex, пока свойство связываемо, можно просто сделать это (я включал две дополнительных кнопки для демонстрации):
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
[Bindable]
private var currentUser:String = "Bill";
private function isUserAllowed(user:String):Boolean
{
if (user == "Bill")
{
return true;
}
return false;
}
]]>
</mx:Script>
<mx:VBox>
<mx:Button label="My Button" enabled="{isUserAllowed(currentUser)}" />
<mx:HBox>
<mx:Button label="Try Tom" click="{currentUser = 'Tom'}" />
<mx:Button label="Try Bill" click="{currentUser = 'Bill'}" />
</mx:HBox>
</mx:VBox>
</mx:Application>
Без currentUser, отмеченного [Связываемый], тем не менее, это не будет работать.
Другой способ пойти, если бы Вы хотели связать более буквально с функцией (это также выражается в документах), состоял бы в том, чтобы иметь функцию, отвечают на событие, которое Вы диспетчеризируете, когда текущий пользователь изменяется, как так:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()">
<mx:Script>
<![CDATA[
private var _currentUser:String = "Bill";
public function set currentUser(value:String):void
{
if (_currentUser != value)
{
_currentUser = value;
dispatchEvent(new Event("userChanged"));
}
}
[Bindable(event="userChanged")]
private function isUserEnabled():Boolean
{
if (_currentUser == "Bill")
{
return true;
}
return false;
}
]]>
</mx:Script>
<mx:VBox>
<mx:Button label="My Button" enabled="{isUserEnabled()}" />
<mx:HBox>
<mx:Button label="Try Tom" click="{currentUser = 'Tom'}" />
<mx:Button label="Try Bill" click="{currentUser = 'Bill'}" />
</mx:HBox>
</mx:VBox>
</mx:Application>
Таким образом, существует несколько путей. IMO, второе кажется так или иначе более надлежащим, но нет определенно ничего неправильно с первым.Удачи!
Вот то, что я сделал несколько раз при подобных обстоятельствах:
<mx:Script>
<![CDATA[
[Bindable] var _username : String;
private function isUserAllowed (userName:Boolean):Boolean {
if (userName == 'Tom')
return true;
if (userName == 'Bill')
return false;
}
]]>
</mx:Script>
<mx:Button label="Create PO"
id="createPOButton"
enabled="{isUserAllowed(_username)}"
click="createPOButton_Click()" />
Таким образом, когда Связываемое _username
изменения, это запустит уведомление об изменении. Так как маркировка слушает _username
изменения (даже если это - просто параметр к другой функции), enabled
свойство будет переоценено.
<mx:Script>
<![CDATA[
[Bindable]
private var userName : String = "Tom"; // or whatever ...
[Bindable]
private var userAllowed : Boolean;
private function isUserAllowed ():Boolean {
if (userName == 'Tom')
return false;
if (userName == 'Bill')
return false;
return false;
}
]]>
</mx:Script>
<mx:Button label="Create PO" id="createPOButton" enabled="{userAllowed}" addedToStage="isUserAllowed()"/>