我有一个select标签,我使用AngularJS绑定到一系列无线电台对象.我的对象具有以下属性:
{
id: 'WXYZ',
name: 'Radio Station Name (optional)',
frequency: '89.7 FM'
}
Run Code Online (Sandbox Code Playgroud)
我希望下拉列表中的每个元素都显示"{id} - {name} - {frequency}"作为显示文本,但由于name属性是可选的,所以我希望避免双重破折号object没有名称的值.
我能够让这个工作:
<select ng-model="StationPreference" ng-options="s.id+ ' - ' + s.name + ' - ' + s.frequency for s in stations">
<option value="">-- select --</option>
</select>
Run Code Online (Sandbox Code Playgroud)
在ng-options中调用函数的规则/指南/最佳实践是什么?我想做类似的事情getDisplayText(s)- 是什么让表达"对角有效"?该功能是否必须在范围内定义?可以是任何外部定义的功能吗?这是所需功能的最佳方法吗?
假设我在MongoDB中有以下文档结构.
{
_id: ####,
Ancestors: [
{ _id: 1, Name: "asdf" },
{ _id: 2, Name: "jkl;" },
...
]
}
Run Code Online (Sandbox Code Playgroud)
我想找到包含Ancestor的每个文件,其中祖先的_id是2.
我可以使用以下命令在mongo shell中运行此查询: db.projects.find({"Ancestors._id": 2})
我也可以使用官方C#驱动程序运行此查询: Query.EQ("Ancestors._id", new BsonInt32(rootProjectId)).
这是我的POCO; 我正在使用的实际类具有比这更多的属性,但我不想用不必要的细节来混淆问题:
public class Project
{
public int Id { get; set; }
public List<ProjectRef> Ancestors { get; set; }
}
public class ProjectRef
{
public int Id { get; set; }
public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何使用C#驱动程序编写强类型查询,以便我不必将"Ancestors._id"作为字符串传入?我希望能够做类似的事情,Query<Project>.EQ(p => p.Id, rootProjectId)以便我可以使用成员表达式,让类映射告诉驱动程序它应该使用"Ancestors._id".