注意:以下代码仅是逻辑,因此未定义任何参数。尽管它们在我所在的同一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
的自定义过滤器运行。