AngularJS:在使用DB中的数据加载作用域后运行函数
所以我现在遇到了这个问题 我选择了从DB中检索值的选项。我使用ui路由器,在控制器中我总是设置if(vm.action=='blablabla'),然后它将调用一个函数,然后从Web服务检索数据 问题是,当我调用2个以上的数据(示例产品和税务选择选项)时。在从数据库成功检索特定的select选项后,如何运行函数 例如,我正在对发票模块进行报价。有税收和产品。这2个是从数据库中检索到的。在成功检索产品后的ajax调用中,我直接运行另一个函数来计算所有价格和税费。但不知何故,在成功加载所有产品后,该税尚未成功加载到vm.options.tax 我曾尝试使用$scope.watch('vm.options.tax',function()),但它首先给出了未定义的结果,并且在vm.options.tax加载了数据库中的数据后没有更新我 如何“等待”vm.options.tax已加载,然后运行该函数AngularJS:在使用DB中的数据加载作用域后运行函数,angularjs,Angularjs,所以我现在遇到了这个问题 我选择了从DB中检索值的选项。我使用ui路由器,在控制器中我总是设置if(vm.action=='blablabla'),然后它将调用一个函数,然后从Web服务检索数据 问题是,当我调用2个以上的数据(示例产品和税务选择选项)时。在从数据库成功检索特定的select选项后,如何运行函数 例如,我正在对发票模块进行报价。有税收和产品。这2个是从数据库中检索到的。在成功检索产品后的ajax调用中,我直接运行另一个函数来计算所有价格和税费。但不知何故,在成功加载所有产品后,该
谢谢当您使用scope.watch时,它将在dom首次完全加载和模型值更改时触发。加载dom时,从db检索数据的过程没有完成,这就是为什么会得到未定义的值。你可以使用角度承诺。Angular的语义规定使用承诺作为一种“回调句柄”——在服务中执行异步操作,返回承诺,当异步工作完成时,触发承诺的then函数
var populateTax = function() {
return $http.get('/api/get_all_tax')
.then(
function (response) {
// Calculate pricing here
var pricing = response.data * tax;
},
function (httpError) {
// translate the error
throw httpError.status + " : " +
httpError.data;
});
};
你有密码吗?听起来像是可以通过链接承诺来解决的问题。请参阅。