AngularJS - 我可以根据三元运算符使用数据绑定值吗

Posted

技术标签:

【中文标题】AngularJS - 我可以根据三元运算符使用数据绑定值吗【英文标题】:AngularJS - Can I use data binding value depending on ternary operator 【发布时间】:2013-07-14 23:52:44 【问题描述】:

我有一个 ng-repeat li 元素,我想根据函数返回 true 或 false 为该 li 设置一个特定值,但我没有想在控制器中执行此操作,因为我有依赖性问题,它使它最小化或最大化所有 li 元素,但我希望它适用于每个单独的 li 元素。我尝试使用包括以下内容在内的几件事,但没有任何运气。我不确定我做错了什么,但我会很感激任何意见或任何其他方式。

object1 来自包含此 li 元素的 ng-repeat。

<li><a tabindex="-1" ng-click="setHidden(object1)">isItHidden(object1) ? 'Minimize' : 'Maximize'</a></li>

解决方案(感谢 jdp)

<li><a tabindex="-1" ng-click="setHidden(object1)">isItHidden(object1)</a></li>

$scope.isItHidden = function(object)
    return object.hidden ? 'Maximize' : 'Minimize';

【问题讨论】:

请分享完整的html和js文件object1在代码中不可见 你不能在视图中做这样的逻辑。为什么你不能让$scope.isItHidden(obj) 返回“最小化”或“最大化”?如果您将特定对象作为函数参数传递,则不应有任何干扰。你能分享你的控制器和一些示例数据吗? @jdp,效果也不错! 【参考方案1】:

随着 Angular 1.2 的发布,您现在可以在 ng-bind 中使用更直观的三元运算符

<a ng-bind="object1.hidden ? 'Maximize' : 'Minimize'"></a>

或括号内

<a> object1.hidden ? 'Maximize' : 'Minimize' </a>

【讨论】:

【参考方案2】:

你可以这样做

 object1.hidden && 'Minimize' || 'Maximize' 

在 Angular 1.2 中将添加一个真正的三元运算符。

【讨论】:

谢谢!我在寻找什么。 现在1.2发布时,这里描述了三元运算符***.com/questions/12008580/… 我也可以像这样传递值吗--> object1.hidden && 'value1' || 'value2' ?

以上是关于AngularJS - 我可以根据三元运算符使用数据绑定值吗的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS - 在绑定中使用三元运算符和过滤器

在angularjs中使用三元运算符来设置元素的属性

如何在 AngularJS 的 ng-init 中使用三元? [复制]

Javascript 语法:AngularJS 过滤器

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

堆叠三元运算符在 Angularjs 表达式中不起作用