angularJS /移交参数

时间:2015-06-16 13:41:15

标签: javascript angularjs node-webkit

在我的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(),似乎出现了问题。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试

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

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