我有一个希望像一个网址的应用程序:调用角资源功能初始化只能在初始化
http://localhost:8000/admin/patients?uuid=643fa655-b82a-4c02-b445-62d2c966867d
因此,如果UUID存在,则加载患者数据,这正与以下代码:
var loadPatientChart = function(uuid){
PatientsResource.getPatient({
patientID:uuid
},
function(patient){
$scope.patient = patient.data[0];
console.log($scope.patient);
});
};
if ("uuid" in $location.search()) {
var obj = $location.search();
loadPatientChart(obj.uuid);
}
我遇到的问题是,我以后需要再次致电loadPatientChart同一控制器上使用:
var unbind = $scope.$on('emmittedPatientUuid', function(event, uuid) {
console.log('emmittedPatientUuid');
loadPatientChart(uuid);
});
$scope.$on('$destroy', unbind);
这调用了函数,我可以验证数据是否返回,$ scope是否使用batarang更新,但视图没有更新。没有更改可见。如果我在init中删除调用,那么emit函数按预期持续工作。我也尝试过在函数结束时调用$ apply而没有快乐。任何帮助,将不胜感激。
是的,我收到此错误: 错误:[$ rootScope:inprog] $已经消化进度 HTTP:/ /errors.angularjs.org/1.2.16/$rootScope/inprog?p0=%24digest – krosullivan
如果范围更新,那么它显然是一个$消化问题'$范围。$ apply'或'$范围。$ digest'应该修复它 – maurycy
是啊,这是我的第一直觉很好,但我曾经尝试都$范围。$应用和$范围。$消化喜欢你的答案以及其他的变化,但不能似乎破解它。错误链接建议在超时中进行包装,但这也不起作用。 – krosullivan