内部功能丢失数据

时间:2018-08-17 08:39:53

标签: javascript angularjs

这是一个有角度的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”将触发。 但是,此时控制台日志将仅显示空值。

当到达内部函数时,数据似乎丢失了。这是关于以某种方式将数据传递给内部函数吗?

0 个答案:

没有答案