【问题标题】:Angular Filter for returning true false from api?从api返回真假的角度过滤器?
【发布时间】:2017-11-20 07:52:36
【问题描述】:

所以我想显示,天气用户是活跃的还是不活跃的。数据来自布尔形式的 api。所以它只会说用户为真或用户为假。如果数据返回真,我想显示“活动”,如果用户返回假,我想显示“不活动”。我所做的解决方案很简单,如果其他可以完成这项工作,但这是在整个应用程序中大量重用,我想制作一个角度过滤器来完成这项任务。 我是 angular 和 java 脚本的初学者,之前没有创建过过滤器。

这是我的 if else 并在 html 中显示 这就是我想最终使用的方式

<label>{{ $ctrl.myValu | truefalse}}</label>

  $onInit = () => {
        let self = this;

        this.siUser.current().then((userData) => {
            let actingAsTenant = userData.user.apikey;

            if (actingAsTenant) {

                self.siTenant.current().then((tenant) => {
                    self.tenant = tenant;
                   
                   ///starts
                    if (self.tenant.active == true) {
                        self.tenant.active = 'Active'
                    }
                    else if (self.tenant.active == false){
                        self.tenant.active = 'Not Active'
                    }
                    //end
                    
                }, (err) => {
                    self.siAlertDialog.error(err.data.message)
                })

            }
        }, (err) => {
            self.siAlertDialog.error('Error rendering tenant details');
        });
    }
&lt;strong&gt;{{$ctrl.tenant.active}}&lt;/strong&gt;

【问题讨论】:

  • 我想创建一个角度过滤器,所以它可以重用我的代码在上面工作。所以我想为 true 或 false 创建一个过滤器,最终看起来像这样

标签: javascript angularjs angular-filters angular-components angular-controller


【解决方案1】:
For this you need to create filter. Try to with the given code

<!DOCTYPE html>
    <html lang="en">
    <head>

        <title>Ristorante Con Fusion: Menu</title>
          <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
    </head>
    <body>

      <div ng-app="myapp" ng-controller="userController" >
      {{ myValu | truefalse }}

        <script>
   var app = angular.module('myapp', []);

   app.filter('truefalse', function(){
        return function(text){
          return text ? "Active" : "Not Active";
        }
      })
app.controller('userController', function($scope) {
      $scope.myValu = true;
});
        </script>
    </body>
    </html>

【讨论】:

  • 我想创建一个角度滤镜! ,我的代码正在运行。
  • 类似这样的东西
  • 为此您需要创建过滤器。尝试使用更新的代码
  • 谢谢你,成功了。抱歉,我对返回文本有点困惑? “活跃”:“不活跃”;过滤器是如何读取真或假的,因为我们没有说如果为真,则说激活,否则不激活。 es6(三元)运算符是否自动假设如果为真,则第一个字符串(活动)如果为假,则第二个字符串(不活动)
【解决方案2】:

你可以使用三元运算符:

JS

///starts
      self.tenant.active == true ? 'Active' : 'Not Active';
//end

在角度表达式中

<strong>{{ $ctrl.tenant.active ? 'Active' : 'Not Active' }}</strong>

【讨论】:

  • 我的代码正在运行,我想创建一个角度过滤器,这样我就可以只使用过滤器而不是编码。像这样
  • 过滤器(作为过滤器的功能)相同:$scope.truefalse= function (item) { return item ? 'Active' : 'Not Active'; }; OR app.filter('truefalse', function() { return function(item) { return item ? 'Active' : 'Not Active'; } });
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-15
  • 2013-08-24
  • 1970-01-01
  • 1970-01-01
  • 2015-05-11
  • 2016-11-19
  • 1970-01-01
相关资源
最近更新 更多