我有以下模型层次结构:
User.hasMany(Child);
Child.hasMany(Profile);
Run Code Online (Sandbox Code Playgroud)
一旦我User加载了一个对象,我需要根据以下逻辑加载它Children和它们的关联Profiles:
Children的User,排序name.Child,加载前三个Profiles反向排序依据id.有没有办法限制和排序渴望加载Profiles?我可以限制和排序Children但不是Profiles.
user.getChildren({
limit: 10,
order: [['name', 'ASC']],
include: [{
model: Profile,
limit: 3, <-- HAS NO EFFECT!!!
order: [['id', 'DESC']] <-- HAS NO EFFECT!!!
}]
});
Run Code Online (Sandbox Code Playgroud)
我能使它工作的唯一方法是执行以下操作:
user.getChildren({
limit: 10,
order: [['name', 'ASC']]
}).then(function(children) {
user.children = children;
_.each(children, function(child) {
child.getProfiles({
limit: 3,
order: [['id', 'DESC']]
});
});
}); …Run Code Online (Sandbox Code Playgroud) 我有一个具有a count和color属性的组件.该组件应该显示带有内联样式count的<div>s 数,用于将其颜色更改为color.
这是我到目前为止所拥有的:
@Component({
selector: 'my-control',
template: `<div *ngFor="let i of dummyArray" style="color: {{color}}"> COLOR = {{color}}</div>`
})
export class MyControl {
private _count: number;
@Input() set count(value: string) {
this._count = +value;
}
@Input() set color(value: string) {
this._color = value;
}
get dummyArray(): number[] {
let ret: number = [];
for (let i = 0; i < this._count; ++i) ret.push(i);
return ret;
}
get color(): string {
return …Run Code Online (Sandbox Code Playgroud) 我在Ionic应用程序中遇到了一些问题(数据异步更新,但UI没有相应更新).我已经在这个问题上摸不着头了,现在我正在尝试测试一种不同的方法:使用Observables.但我不确定如何实现它.Observables网上的教程专注于使用Http已经返回的服务Observable.我的方案如下:
我有一个DataService包含Person对象列表.该服务有一个返回此列表的getter.
export class DataService {
private _list: Person[] = [];
get list(): Person[] { return this._list }
}
Run Code Online (Sandbox Code Playgroud)
早些时候,我在我的组件中直接使用此列表:
<ion-list>
<ion-item *ngFor="let person of dataService.list">
{{person.name}}
</ion-item>
</ion-list>
Run Code Online (Sandbox Code Playgroud)
现在,我想添加另一个消气剂DataService,将返回Observable的的Person[]列表来代替.我不知道的是:
Observable列表.我是Observable将一个DataService属性定义为属性并在构造函数中初始化它还是Observable直接从服务获取器返回一个新属性?我如何将列表包装成Observable?Observable在我的组件中使用此getter?*ngFor = "???"Observable列表已被修改?我希望这能解决我的UI更新问题.
我有以下对象层次结构:
一旦我有了一个用户对象,我就会尝试加载关联的父对象及其一些子对象。以下作品:
user.getParent({
include: [{
model: Child
}]
}).then(function(parent) {
var children = parent.children;
});
Run Code Online (Sandbox Code Playgroud)
但是如果我想有选择地加载一些父母的孩子,像这样:
user.getParent({
include: [{
model: Child,
where: { gender: 'FEMALE' }
}]
}).then(function(parent) {
var daughters = parent.daughters;
});
Run Code Online (Sandbox Code Playgroud)
如果父级有一个或多个女儿,则查询有效,我将获取父级数据以及所有女儿的数据。但是,如果父级只有儿子,则返回的父级对象是null..
我希望如果父级没有女儿,父级对象仍应使用children = null或解决children = []..
另外,如果我想在加载父项时简单地加载子项数,我该怎么做?
谢谢
我正在尝试设计一个可扩展的组件,如下所示:
<collapsable [expanded]="myFlag">
<div title>Summary</div>
<div alternate-title>Heading</div>
<div content>Details</div>
</collapsable>
Run Code Online (Sandbox Code Playgroud)
该alternate-title部分应该是可选的.何时myFlag = false,组件应仅渲染:
<div title>Summary</div>
Run Code Online (Sandbox Code Playgroud)
但是,当myFlag = true组件应该呈现以下之一时:
// If alternate-title exists..
<div alternate-title>Heading</div>
<div content>Details</div>
// If alternate-title does not exist..
<div title>Summary</div>
<div content>Details</div>
Run Code Online (Sandbox Code Playgroud)
现在,我有这个组件的模板定义如下:
<ng-content *ngIf="!expanded" select="[title]"></ng-content>
<ng-content *ngIf="expanded" select="[alternate-title]"></ng-content>
<ng-content *ngIf="expanded" select="[content]"></ng-content>
Run Code Online (Sandbox Code Playgroud)
这适用于第一种情况(如果alternate-title存在).但是,在第二种情况下,它显然不起作用(显然).为了让它适用于第二种情况,我需要alternate-title在我的组件中获得引用.一种方法是在下面:
// In page.html..
<div #alternateTitle alternate-title>...</div>
// In component.ts
@ContentChild('alternateTitle') alternateTitle: ElementRef;
Run Code Online (Sandbox Code Playgroud)
但是,我不喜欢这种方法,因为它迫使我定义一个alternate-title多余的局部变量.
有没有办法可以alternate-title在我的组件中获取引用来检查我的组件的用户是否定义了它?
我正在开发一个可折叠组件,您可以单击该组件来向上/向下滚动以显示/隐藏详细信息.该组件如下:
// component.ts
import {Component, Directive, Input} from '@angular/core';
import {trigger, state, style, transition, animate} from '@angular/core'
@Component({
selector: 'expandable',
template: '<div *ngIf="isExpanded" @animate="'slide'"><ng-content></ng-content></div>',
animations: [
trigger('animate', [
state('slide', style({ overflow: 'hidden', height: '*' })),
transition('slide => void', [animate('200ms ease-out', style({ height: 0 }))]),
transition('void => slide', [style({ height: 0 }), animate('200ms ease-out', style({ height: '*' }))])
])
]
})
export class SimExpandable {
private _expanded: boolean = false;
@Input('expanded') set expanded(value: string | boolean) {
this._expanded = (value === …Run Code Online (Sandbox Code Playgroud) 除了某些参数类型之外,我有几个具有相同方法的类:
interface ICls<T> {
void doSomething(String key, T value);
Map<String, T> getSomething();
}
class ClsA implements ICls<Boolean> {
@Override public void doSomething(String key, Boolean value) { }
@Override public Map<String, Boolean> getSomething() { return Map.of(); }
}
class ClsB implements ICls<String> {
@Override public void doSomething(String key, String value) {}
@Override public Map<String, String> getSomething() { return Map.of(); }
}
Run Code Online (Sandbox Code Playgroud)
现在我试图有一个主类来存储这些类对象的混合列表,并且对于这些实例中的每一个,在它的两个方法之间传递信息:
class Main {
List<ICls<?>> list = List.of(
new ClsA(),
new ClsB()
);
void run() {
list.forEach(cls -> {
Map<String, …Run Code Online (Sandbox Code Playgroud) angular ×4
node.js ×2
sequelize.js ×2
animation ×1
components ×1
css ×1
generics ×1
java ×1
javascript ×1
observable ×1