Angularjs.undefined不是由“未定义”引起的函数;track-by-;陈述

Angularjs. undefined is not a function caused by "track by" statement

本文关键字:未定义 陈述 函数 track-by- undefined Angularjs      更新时间:2023-09-26

我有一个日期数组,必须在选择标签中显示它们


视图:


<select id="select" name="select" class="form-control"  
        ng-model="files.options.fechaIngreso"  
        ng-change="files.fechaIngresoChanged()"   
        ng-options="date.item for date in files.dates track by date.id">
</select>

控制器:

var self = this, data = 4;
self.dates = [];
for (var i =data; i >= 0; i--) {
var historicalDate = moment().subtract(i, 'days').format("DD/MM/YYYY");
var obj = {
     item: historicalDate,
     id: i
};
self.dates.push( obj );
}


得到了这个错误:


TypeError: undefined is not a function
at render (file:///android_asset/www/lib/angular/angular.js:26098:24)
at Scope.$digest (file:///android_asset/www/lib/angular/angular.js:14358:36)
at file:///android_asset/www/lib/angular/angular.js:14505:26
at completeOutstandingRequest (file:///android_asset/www/lib/angular/angular.js:4924:10)
at file:///android_asset/www/lib/angular/angular.js:5312:7

访问.prop("已选择",选项已选择)时执行失败

(file:///android_asset/www/lib/angular/angular.js:26098:24)

 (element = optionTemplate.clone())
.val(option.id)
.prop('selected', option.selected)
.attr('selected', option.selected)
.prop('label', option.label)
.text(option.label);

这个案例也不起作用

<select id="select" name="select" class="form-control"  
            ng-model="files.options.fechaIngreso"  
            ng-change="files.fechaIngresoChanged()"   
            ng-options="date for date in files.dates track by date">
    </select>

var self = this, data = 4;
self.dates = [];
for (var i = data; i >= 0; i--) {
    var historicalDate = moment().subtract(i, 'days').format("DD/MM/YYYY");
    self.dates.push( historicalDate );
}

具有相同的错误

我找到了一个解决方案,不是最佳实践的解决方案,而是一个实用的

<option ng-repeat="date in files.dates" ng-selected="date == files.options.fechaIngreso" value="{{date}}">{{date}}</option>