AngularJS:将表达式迁移到Javascript(Coffeescript)

时间:2014-07-11 17:37:21

标签: javascript angularjs coffeescript

我有一个表达式,我想迁移到javascript以保持$scope中的对象值:

<dl class = "mortgage-information">
    <dt><abbr title = "Loan-to-value Ratio">LTV</abbr></dt>
    <dd>{{(total_financing ? total_financing : financing)/ property_value}}</dd>
</dl>

但是将相同的表达式迁移到javascript将始终导致financing而不是total_financing(Coffeescript):

$scope.ltv = (if $scope.total_financing then $scope.total_financing else $scope.financing) / $scope.property_value

我一直在阅读the documentation on angular expressions to no avail。任何人都可以建议一种更好的方法将表达式迁移到javascript吗?

2 个答案:

答案 0 :(得分:0)

$scope.ltv = ($scope.total_financing ? $scope.total_financing : $scope.financing) / $scope.property_value;

这是你想要的吗?

答案 1 :(得分:0)

您的javascript代码完全错误。首先,javascript没有像visual basic或其他语言那样的if-then结构,语法更像是这样:

if(...) {
   doSomething
} else {
   do someThingElse
}

您犯的另一个错误是您必须为变量分配表达式,而不是if-else构造的语句。您可以像Nikhil建议的那样使用三元运算符,或者如果您对三元运算符不满意,可以使用这样的函数:

$scope.ltv = function() {
   if($scope.total_financing) {
      return $scope.total_financing; 
   } 
   return $scope.financing;
}

然后在html绑定中使用函数调用,如{{ltv()}}