这让我疯了,我在枪下,无法再花上一整天的时间.
我试图在组件中手动设置一个控制值('dept'),它只是不工作 - 甚至新值记录到控制台正常.
这是FormBuilder实例:
initForm() {
this.form = this.fb.group({
'name': ['', Validators.required],
'dept': ['', Validators.required],
'description': ['', Validators.required],
});
}
Run Code Online (Sandbox Code Playgroud)
这是接收选定部门的事件处理程序:
deptSelected(selected: { id: string; text: string }) {
console.log(selected) // Shows proper selection!
// This is how I am trying to set the value
this.form.controls['dept'].value = selected.id;
}
Run Code Online (Sandbox Code Playgroud)
现在,当表单提交并且我注销时,this.form该字段仍然是空白的!我已经看过其他用户,updateValue()但这是beta.1,我不认为这是调用控件的有效方法.
我也试图打电话updateValueAndValidity()没有成功:(.
我只是ngControl="dept"在表单元素上使用,就像我正在使用表单的其余部分,但它是一个自定义指令/组件.
<ng-select
[data]="dept"
[multiple]="false"
[items]="depts"
(selected)="deptSelected($event)" <!-- This is how the value gets to me -->
[placeholder]="'No Dept Selected'"></ng-select>
Run Code Online (Sandbox Code Playgroud) 是否可以使用单独的ID数组来订购关系集合,同时仍然通过关系访问?
设置Checklist有很多ChecklistItems,我以正常的方式访问这种关系:
foreach ($list->items as $item) {
// More Code Here
}
Run Code Online (Sandbox Code Playgroud)
现在,$item作为属性$list下属性的存在的期望顺序$list->item_order,它只是$item用户所需顺序中的ID 数组,特定于$list被迭代.
是否有一种可行的方法来根据模型所具有的数组来定位$items附加的?$listitem_order$list
(我不能只在'item'表中添加'order'列,b/c顺序根据特定的'list'关系进行更改).
谢谢你的帮助!
我有一个依赖于异步获取对象的组件.模板中还有一些子组件依赖于同一对象中的某些数据.
我遇到的问题似乎是一个典型的竞争条件,但我对Angular 2不太熟悉,无法理解解决方案.
以此为例:
export class SampleComponent {
constructor(service: SomeService) {
this.service = service;
this._loadData();
}
private _loadData() {
this.service.getData().subscribe(data => this.data = data);
}
}
Run Code Online (Sandbox Code Playgroud)
但是在模板中,我有子组件来显示以下部分this.data:
<taglist tags="data?.tags"></taglist>
Run Code Online (Sandbox Code Playgroud)
现在Component taglist看起来像:
@Component({
selector: 'taglist',
directives: [NgFor],
inputs: ['tags'],
template: `<span *ngFor="#tag of tags">{{ tag }}</span>`
})
export class TagList {
public tags: Array<string> = [];
constructor() {
//
}
}
Run Code Online (Sandbox Code Playgroud)
由于标记输入是从异步加载的数据集接收的,因此在标记组件初始化时不存在.我可以做什么,以便在this.data加载完成后,使用它的子组件将自动访问新加载的数据?
感谢您提供给我的任何见解!
我似乎无法弄清楚这一点。我有一组缩放的值 (0...1),我需要将颜色与之关联。最高 (1) 为红色,最低 (0) 为绿色。
对于介于 0 和 1 之间的值,我似乎无法找到如何在红色和绿色之间获得 RGB 颜色。
这是我将用于缩放值的缩放函数:
function scale_value($value, $srcmin, $srcmax, $destmin = 0, $destmax = 1)
{
# How Far In Source Range Are We
$pos = (($value - $srcmin) / ($srcmax - $srcmin));
return ($pos * ($destmax - $destmin)) + $destmin;
}
Run Code Online (Sandbox Code Playgroud)
我认为将它们从 0 缩放到 1 将使我正在努力的下一部分变得更容易。
这是我想出的一个非常糟糕的尝试,但失败得很厉害。
function make_color($value)
{
$red = $value > 0.5
? (1 - 2 * ($value - 0.5) / 1)
: 1;
$green = $value …Run Code Online (Sandbox Code Playgroud)