Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Binding 如何在视图中显示angularjs中$scope中布尔变量的文本?_Binding_Angularjs - Fatal编程技术网

Binding 如何在视图中显示angularjs中$scope中布尔变量的文本?

Binding 如何在视图中显示angularjs中$scope中布尔变量的文本?,binding,angularjs,Binding,Angularjs,假设我在$scope中有一个变量: $scope.smsProfile.Active 它可以是真的也可以是假的,我想在屏幕上显示一个关于它的值的文本。例如,如果为真,则显示“配置文件激活”,如果为假,则显示“配置文件未激活”。我该怎么做 我试着这样做: {{true:'Profile active', false:'Profile not active'}[$scope.smsProfile.Active]} 但它不起作用。在控制器中添加一个方法: $scope.smsProfile= {

假设我在$scope中有一个变量:

$scope.smsProfile.Active

它可以是真的也可以是假的,我想在屏幕上显示一个关于它的值的文本。例如,如果为真,则显示“配置文件激活”,如果为假,则显示“配置文件未激活”。我该怎么做

我试着这样做:

{{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开关