Binding 如何在视图中显示angularjs中$scope中布尔变量的文本?
假设我在$scope中有一个变量: $scope.smsProfile.Active 它可以是真的也可以是假的,我想在屏幕上显示一个关于它的值的文本。例如,如果为真,则显示“配置文件激活”,如果为假,则显示“配置文件未激活”。我该怎么做 我试着这样做:Binding 如何在视图中显示angularjs中$scope中布尔变量的文本?,binding,angularjs,Binding,Angularjs,假设我在$scope中有一个变量: $scope.smsProfile.Active 它可以是真的也可以是假的,我想在屏幕上显示一个关于它的值的文本。例如,如果为真,则显示“配置文件激活”,如果为假,则显示“配置文件未激活”。我该怎么做 我试着这样做: {{true:'Profile active', false:'Profile not active'}[$scope.smsProfile.Active]} 但它不起作用。在控制器中添加一个方法: $scope.smsProfile= {
{{true:'Profile active', false:'Profile not active'}[$scope.smsProfile.Active]}
但它不起作用。在控制器中添加一个方法:
$scope.smsProfile= {
Active: true,
statusText: function () {
return $scope.foo.Active ? 'active' : 'not active';
}
}
然后在表达式或ng bind
配置文件是{{smsProfile.statusText()}
演示:在控制器中添加方法:
$scope.smsProfile= {
Active: true,
statusText: function () {
return $scope.foo.Active ? 'active' : 'not active';
}
}
然后在表达式或ng bind
配置文件是{{smsProfile.statusText()}
演示:使用ng hide和/或ng show指令:
<span ng-show="smsProfile.Active">Profile active</span>
<span ng-hide="smsProfile.Active">Profile not active</span>
配置文件处于活动状态
配置文件未激活
使用ng hide和/或ng show指令:
<span ng-show="smsProfile.Active">Profile active</span>
<span ng-hide="smsProfile.Active">Profile not active</span>
配置文件处于活动状态
配置文件未激活
虽然这有点旧,但我想为最终出现在这里的任何人提供参考:
下面是另一个例子,按照上面的逻辑使用三元运算符。此示例基于复选框列表,该列表带有一个用于选择全部或无的切换按钮。如果选择了“全部”(长度相同),则选项文本将更改为“无”
按照该逻辑,上述内容也可以这样写:
{{ (selected.length !== options.length) ? 'Select All' : 'Select None'}}
有关这方面的更多信息,请参阅Mozilla的以下文章:
虽然这有点旧,但我想为最终出现在这里的任何人提供参考: 下面是另一个例子,按照上面的逻辑使用三元运算符。此示例基于复选框列表,该列表带有一个用于选择全部或无的切换按钮。如果选择了“全部”(长度相同),则选项文本将更改为“无” 按照该逻辑,上述内容也可以这样写:
{{ (selected.length !== options.length) ? 'Select All' : 'Select None'}}
有关这方面的更多信息,请参阅Mozilla的以下文章:
没有办法不编写另一个函数就完成它吗?可能是。。。但expression guide文档声明如下:无控制流语句不能在表达式中编写控制流语句。这背后的原因是Angular哲学的核心,即应用程序逻辑应该在控制器中,而不是在视图中。如果需要从视图表达式中抛出条件、循环或对象,请委托给JavaScript方法。另一种选择可能是使用
ng开关
是否有任何方法可以在不编写其他函数的情况下执行此操作?可能。。。但expression guide文档声明如下:无控制流语句不能在表达式中编写控制流语句。这背后的原因是Angular哲学的核心,即应用程序逻辑应该在控制器中,而不是在视图中。如果需要从视图表达式中抛出条件、循环或对象,请委托给JavaScript方法。另一种选择可能是使用ng开关