Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.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
Javascript 我们能否访问customfilter中的用户输入值。正在尝试从控制器或直接在customfilter中访问用户输入号_Javascript_Angularjs_Angularjs Scope_Angularjs Controller_Angularjs Filter - Fatal编程技术网

Javascript 我们能否访问customfilter中的用户输入值。正在尝试从控制器或直接在customfilter中访问用户输入号

Javascript 我们能否访问customfilter中的用户输入值。正在尝试从控制器或直接在customfilter中访问用户输入号,javascript,angularjs,angularjs-scope,angularjs-controller,angularjs-filter,Javascript,Angularjs,Angularjs Scope,Angularjs Controller,Angularjs Filter,我是angular js的新手。在这里,我试图通过减去用户输入(x)来根据温度过滤数据从currentTemp变量。但不确定是否可以访问自定义筛选器中的用户输入值。我计划稍后使用相同的东西。现在这可能就足够了。请提供有关使用自定义文件管理器执行此操作的可能性的反馈(在自定义筛选器中使用输入值并减去它)。任何其他逻辑也会非常有用 var-app=angular.module('tempfilter',[]); 应用程序控制器('MainCtrl',函数($scope){ $scope.sens

我是angular js的新手。在这里,我试图通过减去用户输入(x)来根据温度过滤数据从currentTemp变量。但不确定是否可以访问自定义筛选器中的用户输入值。我计划稍后使用相同的东西。现在这可能就足够了。请提供有关使用自定义文件管理器执行此操作的可能性的反馈(在自定义筛选器中使用输入值并减去它)。任何其他逻辑也会非常有用

var-app=angular.module('tempfilter',[]);
应用程序控制器('MainCtrl',函数($scope){
$scope.sensordata=[{name:'Rob',“Date”:“2014-02-16T00:00:00.000Z”,“Temp”:42},
{name:'Bob',Date:“2012-02-16T20:27:11.507Z”,“Temp:50},
{姓名:'Tom',
“日期”:“2012-02-16T20:27:11.507Z”,“温度”:60},
{姓名:'Sinclair',“日期:”“2012-02-16T20:27:11.507Z”,“临时”:65}];
$scope.condEqual=函数(){
var x=document.getElementById(“myNumber”).value;
document.getElementById(“demo”).innerHTML=x;
}
});
app.filter('tempo',function(){
返回函数(项目、字段){
var筛选=[];
var x=2;
var currentTemp=62;
角度。forEach(项目、功能(项目){

如果(item[field]将您的输入与模型绑定,那么您可以直接将该模型传递到自定义过滤器中,如下所示

<ul>
   <li ng-repeat="s in sensordata | tempo:'Temp':myNumber">{{s.Date|date:'MM/dd/yyyy'}}
      {{s.name}}
      {{s.Temp}}
   </li>
</ul>
过滤功能

$scope.filterByTempo = function(field,tempo) {
    return function(item) {
      if (item[field]<= tempo){
        return true;
      }
      return false;
    }
  }
$scope.filterByTempo=函数(字段,节拍){
返回函数(项目){
如果(项目[字段]而不是:

var x = document.getElementById("myNumber").value;
document.getElementById("demo").innerHTML = x;
你应该做:

$scope.filter = { value: 2 };
而不是:

var x = document.getElementById("myNumber").value;
document.getElementById("demo").innerHTML = x;
您应该(在HTML中)执行以下操作:

以及:


  • 只需使用
    ng model
    将相同的对象属性作为参数传递给过滤器。另外,在
    文档中,getElementById是一个很大的代码气味,您永远不应该在指令之外摆弄DOM。感谢您对上一部分在哪里传递filter.value(在自定义过滤器参数中)感到困惑。being新加入angular并不容易。没问题,欢迎使用stackoverflow。请参阅此更新-它在
    ng repeat
    中,您可以使用另一个
    将第二个值传递给筛选器,如下所示:
    tempo:'Temp':filter.value
    。还请注意使用第三个参数的函数:
    函数(项、字段、值)
    。您试过了吗,它是否如您所期望的那样工作?非常感谢您的帮助,这非常好。几天来,我一直在想办法解决这个问题。现在,我需要想办法对日期做同样的事情。我需要过滤所有小于用户值的数据,这是主要目的,并尝试使用温度来检查逻辑。明天我将尝试解决这个问题从现在起将使用stackoverflow进行查询Dyea采摘器按预期工作我想减去用户输入的值以便我可以使用相同的功能根据用户输入筛选数据就像温度一样但是你已经给出了主逻辑我刚刚减去了t值。非常感谢它也起作用了…正在寻找与日期相同的值…用户输入值,我可以减去今天的天数-用户输入天数并获得所需的数据…我必须减去值以实现这一点…u给出的逻辑有效………var filtered=[];var x=60 tempo;angular.forEach(项,函数(项){如果(项目[字段]
    app.filter('tempo', function() {
        return function(items, field, value) {
            var filtered = [];
            angular.forEach(items, function(item) {
                if (item[field] <= value){
                    filtered.push(item);
                }
            });
            return filtered;
        };
    });
    
    <li ng-repeat="s in sensordata | tempo:'Temp':filter.value">