我在Flex
中对条件表达式的估值有问题。
让我解释一下。
我有这个:
<s:Label text="SomeTextLawyer" includeInLayout="{Session.isLawyer()}"
visible="{Session.isLawyer()}"/>
<s:Label text="SomeTextDoctor" includeInLayout="{Session.isDoctor()}"
visible="{Session.isDoctor()}"/>
此Session对象定义如下:
public class Session extends Singleton
{
[Bindable]
private static var user:User;
[...]
public static function isDoctor():Boolean {
return Session.user.type == model.type.DOCTOR;
}
public static function isLaywer():Boolean {
return Session.user.type == model.type.LAWYER;
}
}
我有一个改变用户的机制,所以我的用户可以先是医生,然后是律师。问题是我的标签保留了他们的第一个估值。如果我先以医生的身份联系,如果我以律师身份更改用户身份,我仍会显示医生标签。反之亦然......
在AS代码上,我的用户是好用户,但不在我的mxml
文件上......所以只有显示的部分才会看到用户切换。
有什么想法吗?
提前谢谢!
答案 0 :(得分:0)
尝试使用可绑定的布尔值来检查用户类型,例如:
angular.module('myapp',[]).
config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/', { templateUrl: '/menu/Noodle.html', controller: HomeController });
$routeProvider.when('/about', { templateUrl: '/pages/about.html', controller: AboutController });
$routeProvider.when('/privacy', { templateUrl: '/pages/privacy.html', controller: AboutController });
$routeProvider.when('/terms', { templateUrl: '/pages/terms.html', controller: AboutController });
$routeProvider.otherwise({ redirectTo: '/' });
}]);
并在show control例程中设置它们的值,例如:
[Bindable] public var isDoctor:Boolean;
[Bindable] public var isLawyer:Boolean;