注意:以下代码仅是逻辑,因此未定义任何参数。尽管它们在我所在的同一javascript文件中已定义并被积极使用。

我是javascript / angularjs的新手(我什至都​​不知道这是什么代码),到目前为止,由于语法和其他方面的原因,它真的使我感到不知所措。我的dateTimeService.js文件中有一个主要函数,该函数返回另一个函数,该函数根据使用以下逻辑打开还是关闭存储,返回一个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

最佳答案

假设您的应用程序已正确引导,并且您可以从控制器调用服务,那么此处将显示一个大大简化的小提琴,以演示您要执行的操作。

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的自定义过滤器运行。

07-24 09:46
查看更多