AngularJS:三元运算符条件检查中的函数调用

时间:2016-07-14 12:24:28

标签: javascript angularjs ternary-operator

我的HAML档案:

%pipes-autocomplete{:model =>"filter.value",:option => "validate_option(filter)" ? "dependant(filter)" : "filter.option"}

我的咖啡脚本:

  $scope.validate_option =(filter)->
     console.log "called validate_option"
     if filter.hasOwnProperty('option') && filter.option.indexOf('dependant') > -1
       return true
     else
      return false
  $scope.dependant =(cal)->
    return "choosed"

在三元运算符中,我试图调用我的角度控制器中定义的validate_option函数。但是函数没有被调用。有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

正如你在问题中提到的那样,三元运算符会将字符串"validate_option(filter)"视为true(仅因为它不是空字符串)。

而是将三元运算符放在字符串中:

"validate_option(filter) ? dependant(filter) : filter.option"

这样你就可以将三元运算符的执行推迟到实际计算字符串的时候。