gpt4 book ai didi

javascript - Angular 过滤

转载 作者:行者123 更新时间:2023-12-03 07:35:57 28 4
gpt4 key购买 nike

我在 mongoDB 中有这个架构:

var CostSchema = new Schema({
item: String,
value: Number
});

var AttachmentsSchema = new Schema({
item: String,
url: String
})

var ServiceSchema = new Schema({
item: String, // maybe another Schema [] to be able to search for this criteria
description:String,
worker: { type: Schema.Types.ObjectId, ref:'Worker'}, //Saves Worker ID
date_assigned: Date,
price:Number
});

var JobsSchema = new Schema({
manager: { type: Schema.Types.ObjectId, ref:'Admin', required:true}, // Saves Manager Name
propertie: { type: Schema.Types.ObjectId, ref: 'Propertie', required:true}, //Saves Property Name
unit: String,
completed: Boolean,
costs: [CostSchema],
services:[ServiceSchema],
totalPrice: Number,
totalCost:Number,
poNumber: { type : String, unique: true, sparse:true },
invoiceNumber: { type : String, unique: true, sparse:true },
notes: String,
date_completed: Date,
attachments: [AttachmentsSchema],
notification_sent: Boolean
});

因此,根据工作,它是否有完成日期,我正在尝试在前端应用以下过滤器

<div class="page-header col-xs-12">
<h3 class ='text-center'>Pending Jobs</h3>
<div class="form-group col-xs-8 col-xs-offset-2 text-center">
<label for="searchJobBox1">Filter</label>
<input ng-model = 'job.$' type="text" class="form-control" id="searchJobBox1" placeholder="Quick Filter...">
</div>
<div class="form-group col-xs-2 col-xs-offset-3 text-center">
<label for="jobPropertyFilter" class="col-xs-2 control-label">Property</label>
<div>
<select ng-model = 'job.propertie._id' class="form-control" id='jobPropertyFilter'>
<option></option>
<option value = '{{property._id}}' ng-repeat ='property in properties'>
{{property.name}}
</option>
</select>
</div>
</div>
<div class="form-group col-xs-2 text-center">
<label for="jobWorkerFilter" class="col-xs-2 control-label">Worker</label>
<div>
<select ng-model = 'job.services.worker._id' class="form-control" id='jobWorkerFilter'>
<option></option>
<option value = '{{worker._id}}' ng-repeat ='worker in workers'>
{{worker.first}} {{worker.last}}
</option>
</select>
</div>
</div>
<div class="form-group col-xs-2 text-center">
<label for="jobManagerFilter" class="col-xs-2 control-label">Manager</label>
<div>
<select ng-model = 'job.manager._id' class="form-control" id='jobManagerFilter'>
<option></option>
<option value = '{{admin._id}}' ng-repeat ='admin in admins'>
{{admin.first}} {{admin.last}}
</option>
</select>
</div>
</div>
</div>

我有两个 ng-repeats,如下所示:1) 工作正常

<div class="panel panel-default" ng-repeat = 'job in jobs| filter:job:strict' ng-if='!job.date_completed' >

2)

 <div class="panel panel-default" ng-repeat = 'job in jobs| filter:job:strict' ng-if='job.date_completed' >

出于某种我无法弄清楚的原因,Angular 会将过滤器应用于具有 date_completed 属性的每个作业,并且它们不会被显示,它与 ng-if 没有任何关系,这是工作得很好。

有什么建议吗?

最佳答案

在第二个示例中,仅当定义了 job.date_completed 时,ng-if 才会显示该元素。

我只能假设job.date_completed*undefined*

尝试使用console.log打印job.date_completed的值

关于javascript - Angular 过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35613653/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com