public void loadData() {
final Promise<VisionEncounter> vePromise = nodeMgr.getByEncounter(VisionEncounter.class);
final Promise<Patient> patientPromise = nodeMgr.getPatient();
final Promise<GetVisualAcuityMethodsAndConfigResponse> configPromise = VisualAcuityMethodsAndConfigCache.fetchAsPromise();
final Promise<List<VisionEncounter>> historyPromise = nodeMgr.query(VisionEncounter.class)
.filter(new Filter("encounterId")
.match("patientId", FancyEmrContext.get().getPatientId()))
.executeQuery();
Deferred.when(vePromise, patientPromise, configPromise,historyPromise).then(new EmrDeferredCallback<ArrayList<Object>>() {
@Override public void onSuccess(ArrayList<Object> objs) {
defaultCylinderSetting = configPromise.getResult().configuration.cylinderMethod;
patientAge = patientPromise.getResult().getAge();
updateView(vePromise.getResult());
List<VisionEncounter> result = historyPromise.getResult();
for (VisionEncounter e : result ){
if (e.glassesPrescriptions.isEmpty()){
view.setImportHide();
}
}
}
});
}
我可能没说清楚,是这样的, 有一个叫import 的label, 如果里面有没有数据的话这个import label将 不显示. 主要是不知道怎么去查找数据. 这个代码前面应该没问题,就是最后的那个loop 可能有问题,但不知道问题出在哪里. 我可以提供其他的相关代码 如果大神需要的话
------解决思路----------------------
if (e.glassesPrescriptions.isEmpty()){
view.setImportHide();
break;//是不是这里要跳出?
}
------解决思路----------------------

------解决思路----------------------
你这个可以再后台控制的
你不是查询数据么,在后台判断查询的数据是不是为空或者size是不是0 ,如果是,给一个指令给页面,由这个指令来控制按钮的 可用
------解决思路----------------------
你调试看看吧。loop 也没看到。
------解决思路----------------------
楼主可以把前台和后台的代码整理一下,这样方便我们的阅读。