我有一个表达式,我想迁移到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吗?
答案 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()}}