Javascript ng模型值未通过ng repeat传递

Javascript ng模型值未通过ng repeat传递,javascript,angularjs,ionic-framework,angularjs-filter,Javascript,Angularjs,Ionic Framework,Angularjs Filter,我试图有自定义过滤器来过滤日期范围,保留了文本字段,以便在popver中从用户处获取日期。它不工作,而我有另一个文本框在标题栏中获取名称,并能够在默认过滤器的ng repeat中获取值 我错过了什么 Popver中的日期字段 它不在任何控制器下,而是在popver中 <label class=" item-input"> <span class="input-label" style="width:50%;font-size:14px;">From Date&

我试图有自定义过滤器来过滤日期范围,保留了文本字段,以便在popver中从用户处获取日期。它不工作,而我有另一个文本框在标题栏中获取名称,并能够在默认过滤器的
ng repeat
中获取值

我错过了什么

Popver中的日期字段

它不在任何控制器下,而是在popver中

  <label class=" item-input">
    <span class="input-label" style="width:50%;font-size:14px;">From Date</span>
    <input type="text" ng-model="fromDate"/>
  </label>

从日期开始
HTML-ng repeat

    <div ng-repeat="item in Items | filter: custname |  filter: applyDateFilter(fromDate, toDate)">
        <div class="row item wrap">
          <div class="col col-95">
            <ion-checkbox ng-model="item.Selected">
              <div class="row">
                <div class="col col-67">
                  <p>{{item.name}}</p>
                </div>
                <div class="col col-33 right">
                  <p>{{item.order_date | datetimeFormat }}</p>
                </div>
              </div>
            </ion-checkbox>
          </div>
        </div> 
      </div>

{{item.name}

{{item.order_date|datetimeFormat}

过滤器

 .controller("dbController", function($scope, $rootScope) {
     $scope.applyDateFilter = function(from, to) {
        return function(items, from, to) {
            console.log(items);
            console.log('from '+from);
            console.log('to '+to);
            console.log('fromDate '+$scope.fromDate);
            console.log('toDate '+toDate);

            var result = [];   

            if(from == 0 && to == 0)
              return items;

            if(from != '' && to != ''){
              var df = parseDate(from);
              var dt = parseDate(to);

              for (var i=0; i<items.length; i++){
                  var tf = new Date(items[i].order_date * 1000);
                  if (tf >= df && tf <= dt)  {
                      result.push(items[i]);
                  }
              }
            }            
            return result;
        };
      }; 
  });
.controller(“dbController”,函数($scope,$rootScope){
$scope.applyDateFilter=函数(从,到){
返回函数(项目、从、到){
控制台日志(项目);
console.log('from'+from);
console.log('to'+to');
log('fromDate'+$scope.fromDate);
console.log('toDate'+toDate);
var结果=[];
if(from==0&&to==0)
退货项目;
如果(从!=''&&到!=''){
var df=解析日期(从);
var dt=解析日期(至);

对于(var i=0;i=df&&tf,popover可能正在创建一个不同的作用域,因此您的
ng模型
正在注册到一个不同的作用域

请尝试以下解决方案:

创建一个全局控制器,并将其应用于
,然后在其中放入类似的内容(
):

现在,更改您的视图:

<label class=" item-input">
    <span class="input-label">From Date</span>
    <input type="text" ng-model="globalModels.fromDate"/>
</label>

从日期开始

现在,当将其传递到filter in
ng repeat
时,传递
globalModels.fromDate
,而不仅仅是
fromDate
。对
toDate

执行相同操作,popover可能正在创建不同的作用域,因此您的
ng模型
将被注册到不同的作用域

请尝试以下解决方案:

创建一个全局控制器,并将其应用于
,然后在其中放入类似的内容(
):

现在,更改您的视图:

<label class=" item-input">
    <span class="input-label">From Date</span>
    <input type="text" ng-model="globalModels.fromDate"/>
</label>

从日期开始

现在,当将其传递到过滤器中时,
ng repeat
,传递
globalModels.fromDate
,而不仅仅是
fromDate
。对
toDate

执行同样的操作。提供一个小提琴来检查您的流。您是如何打开popover的?是否使用ui引导?提供一个小提琴来检查您的流。您是如何打开popover的?Ar你在使用ui引导吗?很抱歉回复太晚,我正在使用ionic。我尝试了$rootScope和$scope,但仍然得到相同的结果。将fromDate设置为未定义,将toDate设置为“”。尝试更改名称也不起作用。还尝试将元素直接移动到标头而不是popover,运气不佳。很抱歉回复太晚,我正在使用ionic。我尝试$rootScope和$scope中都有d,但仍然相同。将fromDate获取为未定义,将toDate获取为“”。尝试更改名称也无效。还尝试将元素直接移动到标头而不是popover,没有成功。
<label class=" item-input">
    <span class="input-label">From Date</span>
    <input type="text" ng-model="globalModels.fromDate"/>
</label>