AngularJS: 三元运算符条件检查中的函数调用
AngularJS: Function call in ternary operator conditional check
我的 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"
在三元运算符中,我试图调用 angular controller.But 中定义的 validate_option 函数,该函数没有得到 called.Can 有人帮我解决这个问题问题。
正如您在问题中所说,三元运算符会将字符串 "validate_option(filter)"
视为 true
(只是因为它不是空字符串)。
而是将三元运算符放在字符串中:
"validate_option(filter) ? dependant(filter) : filter.option"
这样您就可以将三元运算符的执行推迟到实际评估字符串时。
我的 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"
在三元运算符中,我试图调用 angular controller.But 中定义的 validate_option 函数,该函数没有得到 called.Can 有人帮我解决这个问题问题。
正如您在问题中所说,三元运算符会将字符串 "validate_option(filter)"
视为 true
(只是因为它不是空字符串)。
而是将三元运算符放在字符串中:
"validate_option(filter) ? dependant(filter) : filter.option"
这样您就可以将三元运算符的执行推迟到实际评估字符串时。