从HTML页面而非.js文件调用函数时,AngularJS $ scope未定义

时间:2018-07-16 13:18:44

标签: javascript html angularjs scope rootscope

我有这个:$scope.products;
我这样设置值:$scope.products = plans;其中计划是我从呼叫中得到的结果。 如果我进行调试,则在调试器中有$scope$scope.products

示例:
https://s3.amazonaws.com/uploads.hipchat.com/39260/829560/KJa2m6bTKcu8qi9/upload.png

但是我随后从我的.html中进行了操作:

<td>
  <span data-i18n="psngr.billing.pay.overview.total">
    Total
  </span> 
  <label class="bold">
    <span ng-bind-html="prices.currency"></span>
    {{ roundPrice(products[0].price.val)}}
  </label>
  <span id="vat" ng-show="prices.currency_code === 'EUR'"> 
    (+ 
    <span ng-bind-html="prices.currency"></span>
    {{products[0].vat}} 
    <span data-i18n="psngr.billing.vat"></span>
    )
  </span>
</td>

基本上从我的roundPrice文件中调用.js方法,这是这样做的:

$scope.roundPrice = function(price) {
  if (!price) {
    return 0;
  }
  // potentially round the price
  if (price % 1 === 0) {
    return price.toFixed(0);
  }
  return price.toFixed(2);
};

但是在这里,我的范围是不确定的,价格也是原因。为什么?

示例:https://s3.amazonaws.com/uploads.hipchat.com/39260/829560/gHUfKdl6SkAUsGT/upload.png

1 个答案:

答案 0 :(得分:1)

查看了我们从服务器获得的响应后,我更好地理解了问题所在:我获得的价格是整数。因此,当然,price.val会被欠缺。这意味着在我将代码更改为此之后,它现在可以工作了:

roundPrice(products[0].price)}}