无法在HTML中看到Javascript变量

时间:2019-07-03 19:03:23

标签: javascript angular

我有一个有角度的应用程序,我试图在其中获取一个JavaScript变量以HTML格式显示。这确实适用于我的应用程序的较早部分。但是,它将无法在新部分中使用。

这是工作功能(在名为reports.js的文件中):

  return db.queryPromise(sql, sqlParams().then(function(results) {
    console.log("Inside queryPromise");
    var data = {
       GrandTotals: {
          Expensed: 0
       }
    };

    results.reduce(function(data,record) {
      var expensed = record['Expensed'];
      data.GrandTotals.Expensed = expensed;
      console.log("Expensed amount:"+data.GrandTotals.Expensed);
      return data;
    }, data);
    return data;
});

以下是有效的html(位于名为_reportFunds.html的文件中):

 <tr class="info bold">
   <td colspan="3">Grand Total</td>
   <td class="text-right"><currency value="data.GrandTotals.Expensed" symbol="$"/></td>
 </tr>

这是不起作用的功能(在名为crud.js的文件中):

return db.queryPromise(sql, sqlParams().then(function(results) {
    console.log("Inside queryPromise-crud");
    var pageObject = {
       GrandTotals: {
          Expensed: 0
       }
    };

    results.reduce(function(pageObject,record) {
      var expensed = record['Expensed'];
      pageObject.GrandTotals.Expensed = expensed;
      console.log("Expensed amount-crud:"+pageObject.GrandTotals.Expensed);
      return pageObject;
    }, pageObject);
    return pageObject;
});

这是无效的html(位于名为_trans.html的文件中):

<tr class="info bold">
  <td colspan="3">Grand Total</td>
  <td class="text-right"><currency value="pageObject.GrandTotals.Expensed" symbol="$"/></td>
</tr>

如您所见,除了变量名更改外,代码基本相同。我可以看到console.logs将期望的信息打印到服务器。这使我相信,由于显示了数据,因此应该可以访问变量。在将crud.js文件提取到html中之前,可能会杀死它吗?
谢谢!

1 个答案:

答案 0 :(得分:0)

嗯...我从来没有想过如何使当前代码正常工作。但是,在对总计进行更多的研究时,我发现了一种巧妙的小角度方法来处理此问题并提供总计。

这是html:

<td class="text-right">{{getTotalExpense}}</td>

这是控制器中的代码:

$scope.getTotalExpense = function() {
   var total = 0;
   for(var i=0; i<$scope.displayed.length; i++){
      var product = $scope.displayed[i];
      total += (product.Expensed);
   }

   return '$' + total.toFixed(2).replace(/(\d)(?=(\d{3})+(?!\d))/g,'$1,')
}