$scope.input.opening_hours = place.opening_hours && place.opening_hours.weekday_text ? place.opening_hours.weekday_text : '';
未捕获的TypeError:无法读取的属性'weekday_text'
未定义(...)
if ( place.opening_hours && place.opening_hours.weekday_text ) {
$scope.input.opening_hours = place.opening_hours.weekday_text;
} else {
$scope.input.opening_hours = '';
}
我正在尝试制作此if语句的三元版本,但出现上述错误。什么是将其简化为简单语句的最佳方法。
最佳答案
正如我在评论中告诉您的那样,您需要添加括号:
$scope.input.opening_hours = (place.opening_hours && place.opening_hours.weekday_text) ? place.opening_hours.weekday_text : '';
您可以改善:
$scope.input.opening_hours = ((place.opening_hours && place.opening_hours.weekday_text) ? place.opening_hours.weekday_text : '');
后者确保将首先执行内部括号。就像数学一样,内部圆括号需要在外部圆括号之前执行。
关于javascript - JavaScript三元,如果x && y else,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40660786/