angularJS / 交出参数

angularJS / handing over parameter

在我的 AngularJS 控制器中,我有以下代码:

    $scope.readMDB = function () {

    var fs = require('fs');
    var adodb = require('node-adodb');
    var password = document.forms["mdbSelForm"]["pwd"].value;

    var revSQL = fs.readFileSync('revenue.sql', 'utf-8');
    revSQL = revSQL.replace(/(\r\n|\n|\r)/gm, " ");
    revSQL = revSQL.replace(/[ä]/g, function () { return unescape("%E4") });
    $scope.revenueSQL = String(revSQL);
    console.log("revSQL: " + $scope.revenueSQL);


    connection = adodb.open('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + $scope.selectedMDB + ';Jet OLEDB:Database Password=' + password + ';');

        // debug 
        adodb.debug = true;

        connection
          .query($scope.revenueSQL)
          .on('done', function (data) {
              var revAll = JSON.stringify(data);
              var revenueData = JSON.parse(revAll).records;
              fs.writeFile('./model/revenue.json', JSON.stringify(data), function (err) {
                  if (err) throw err;
                  console.log("revenue.json saved");
              });
              return true;
          })
          .on('fail', function (data) {
              return false;
          });
    }

类似的代码在不使用 Angular 时工作正常。现在,它不再起作用了,因为

connection.query($scope.revenueSQL)

部分。更准确地说,$scope.revenueSQL 未被识别为 SQL 语句,而它实际上是。直接放置 SQL 而不从文件中读取它可以正常工作。不过,看着我的控制台,我发现 $scope.revenueSQL 正是我想要的。但是作为参数放入 .query() 中,似乎出了问题。有什么想法吗?

尝试

$scope.revenueSQL = $scope.$eval(String(revSQL));

在当前作用域上执行表达式并returns结果。