这是一个有角度的1应用程序。 单击按钮时,会触发一个名为“ register”(在“ registerController”中)的函数:
$scope.register = (account, e) => {
$scope.preUpdate( () => {
console.log("account.localData.amount:",account.localData.amount);
account.data.amount = angular.copy(account.localData.amount);
console.log("account.data.amount:",account.data.amount);
updateAccount(account);
});
}
如您所见,以上函数在主控制器“ myController”中调用了另一个函数。 在这里:
myCtrl.preUpdate = (callback, argList) => {
argList = [].concat(argList);
if(!myCtrl.isFirstInMyGroup){
let modal = $("#modNotFirstUpdate").modal();
modal.show();
myCtrl.currentUpdateFunction = () => {
callback(...argList);
}
} else {
callback(...argList);
}
}
当变量“ myCtrl.isFirstInMyGroup”为true时,if语句将不执行,否则else将适用。 在这种情况下,一切正常。 只需在第一个函数中考虑htis行:
console.log("account.data.amount:",account.data.amount);
在这种情况下,它将打印非空数据。
但是,当上述IF适用时,情况将不起作用。 如您所见,如果应用模态,则会在模态中打开一个“确认”按钮
ng-click="currentUpdateFunction"
不传递任何参数(应该吗?)。
当我单击模式中的确认按钮时,“ preUpdate”内部的“ currentUpdateFunction”将触发。 但是,此时控制台日志将仅显示空值。
当到达内部函数时,数据似乎丢失了。这是关于以某种方式将数据传递给内部函数吗?