繁体   English   中英

如何使用angular或javascript基于true / false返回在html中显示值?

[英]How do I use angular or javascript to display value in html based on true/false return?

注意:下面的代码只是逻辑,因此没有定义参数。 虽然它们是在我所在的同一个javascript文件中定义和主动使用的。

我是javascript / angularjs的新手(我甚至不知道这是什么代码)而且截至目前,由于语法和其他所有内容,它真的让我变成了一个曲线球。 我在我的dateTimeService.js文件中有一个main函数,它返回另一个函数,该函数根据if store是使用下面的逻辑打开还是关闭来返回true / false值。

app.factory("dateTimeService", function() {

    return { 
        isHelperOpen: function(hoursString) {
            if (openTime <= nowTime && nowTime <= closeTime)
                  return true;
            else
                  return false;}
    }
}

如何根据其中一个函数返回的true / false值显示“Open”或“Closed”等值? html是如何显示的? 我是否创建了另一个功能来执行此操作? 任何帮助表示赞赏..提前致谢!

<div class="availability">{{isHelperOpen(item)}}</div> --this is my long shot

我建议使用角度滤波器来做这样的事情。 它使您的渲染值与您的数据值分开,它还有助于保持DOM和视图控制器更清洁:

HTML

<div class="availability">{{item | helperOpenFilter}}</div>

角度滤波器

.filter( 'helperOpenFilter', function(dateTimeService){
    return function (obj){
       return dateTimeService.isHelperOpen(obj) ? 'Open' : 'Closed';
    }
}

您可以使用ng-if:

 <span ng-if="isHelperOpen(foo)">Open</span>
 <span ng-if="!isHelperOpen(foo)">Closed</span>

或者你可以尝试:

 <span ng-show="isHelperOpen(foo)">Open</span>
 <span ng-hide="isHelperOpen(foo)">Closed</span>

或者您可以使用过滤器。

假设您的应用程序已正确引导并且您可以通过控制器调用您的服务,这里有一个非常简化的小提示,可以演示您想要做什么。

http://jsfiddle.net/90hozqr1/1/

HTML:

<body ng-app="myApp">
  <div>
    <div ng-controller="MyController">
      <div>
        <span>{{callServiceWith(true) | displayBool}}</span>
        <span>{{callServiceWith(false) | displayBool}}</span> 
      </div>
    </div>
  </div>
</body>

Javascript:

var myApp = angular.module("myApp", []);

myApp.factory("dateTimeService", function() {
    return { 
        isHelperOpen: function(hoursString) {
            return hoursString
        }
    }
})

myApp.controller("MyController", function($scope, dateTimeService) {
    $scope.callServiceWith = function(bool){
        return dateTimeService.isHelperOpen(bool);
    }
})

myApp.filter("displayBool", function(){
  return function(input) {
    if(input) {
      return "Open"
    } else {
      return "Closed"
    }
  }
})

需要注意的是,调用服务的范围中有一个函数: callServiceWith ,它是从模板中调用的。 输出通过名为displayBool的自定义过滤器运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM