changeAngular 2中的活动是什么?什么时候发送,我该如何使用它?
I. e.我通过以下代码订阅了(change)="update()"什么?
http://plnkr.co/edit/mfoToOSLU6IU2zr0A8OB?p=preview
import {Component, View, Input, Output, EventEmitter, OnChanges} from '@angular/core'
@Component({
selector: 'inner-component',
template: `
<label><input type="checkbox" [(ngModel)]="data.isSelected"> Selected</label>
`
})
export class InnerComponent {
data = { isSelected: false };
}
@Component({
selector: 'my-app',
template: `
<p><inner-component (change)="update()"></inner-component></p>
<p>The component was updated {{count}} times</p>
`,
directives: [InnerComponent]
})
export class AppComponent {
count = 0;
update() {
++this.count;
}
}
Run Code Online (Sandbox Code Playgroud)
PS:俄语同样的问题.
未知的脚本操作(可能是异步)会导致页面重新加载.
如何在代码中找到此操作?
至少,有没有办法在访问时设置断点window.location?
但我不确定以这种方式强制导航.
事实上,我需要一种在任何一个浏览器中工作的方式,因为页面重新加载任何一个.
PS:俄语同样的问题.
with(new Proxy({}, {
has() { return true },
get(obj, key, proxy) { return console.log(String(key)) } })
) {
a--
}Run Code Online (Sandbox Code Playgroud)
Chrome中的输出:
Symbol(Symbol.unscopables)
a
Symbol(Symbol.unscopables)
Run Code Online (Sandbox Code Playgroud)
Firefox中的输出:
Symbol(Symbol.unscopables)
Symbol(Symbol.unscopables)
a
Run Code Online (Sandbox Code Playgroud)
据我所知,一个人获得与阅读价值相关 - 另一个 - 分配.
不,这不对.a--应该写入a读取的同一个地方是合乎逻辑的.
但是Symbol.unscopables两次获得价值提示我们,可以传递一个对象进行阅读,另一个对象进行写作.
它真的意味着像那样工作吗?规范说什么?
实际上,它几乎可以在Chrome和FF中运行 - 它可以从一个对象读取并写入另一个对象,但它会导致不同的结果:
更新:Safari 10只读取一次.
var a, b, flag = true
with (a = { x: 7 })
with (b = { x: 4, get [Symbol.unscopables]() { return { x: flag=!flag } } })
x++
// Chrome FF …Run Code Online (Sandbox Code Playgroud)我想将任意数量的不同类型的参数传递给一个函数并使用这些类型。它看起来如下:
function f<A>(a: A): A;
function f<A, B>(a: A, b: B): A & B;
function f<A, B, C>(a: A, b: B, c: C): A & B & C;
function f<A, B, C, D>(a: A, b: B, c: C, d: D): A & B & C & D;
function f(...args: any[]) {
return Object.assign({}, ...args);
}
var smth = f({ x: 1 }, { y: 2 }, { z: 3 });
var res = smth.x + smth.y + smth.z; …Run Code Online (Sandbox Code Playgroud) 我有一个文件存储诸如2.32x7. 我使用以下方法读取浮点部分:
fscanf(file, "%lf", &value);
Run Code Online (Sandbox Code Playgroud)
它工作得很好......除了当文件存储类似0x2. 在这种情况下,它将整个字符串读取为十六进制值。
我怎样才能防止这种情况发生?我希望 fscanf 只读取0并忽略x2.
编辑: 根据@dbush的建议,我添加了一个示例输入文件。
我正在解析多项式。因此,输入文件将类似于:
0x2+2.32x7-4x-9
Run Code Online (Sandbox Code Playgroud)
看看下面的代码:
export class Smth {
private flag: boolean;
public update() {
this.flag = true;
this.inner();
if (this.flag === false) { // Operator '===' cannot be applied to types 'true' and 'false'.
console.log(123);
}
}
private inner() {
this.flag = false;
}
}
Run Code Online (Sandbox Code Playgroud)
我无法理解这条线有什么问题
if (this.flag === false)
Run Code Online (Sandbox Code Playgroud)
打字稿说
运算符'==='不能应用于类型'true'和'false'.
但实际上有boolean和false.
我正在使用typescript 2.6.2但是在线游乐场用2.7显示相同的结果.
它不是运算符''='的公开,不能应用于Typescript 2中的类型x和y,因为该问题是关于比较常量.但在我的代码中,它是一个可查询的类字段,并且有一个函数可以更改值.而且,它被称为.
this.flag = true;
this.inner(); // exectues this.flag = false;
if (this.flag === false) { // ... …Run Code Online (Sandbox Code Playgroud) 元组中的Typescript允许添加以前使用过的任何类型的额外元素,但我想限制长度.我试过了& { length: 2 },但没有帮助:
declare var a: [string, number] & { length: 2 };
a[0] = "1"
a[1] = 2;
a[2] = "3";
a[3] = 4;
Run Code Online (Sandbox Code Playgroud)
分配[2]和[3]不产生错误.如何指定相应的类型?
我想get在发生错误时再次尝试重试请求几次,但如果所有尝试都失败,则执行错误处理程序.
以下代码重试请求,但catch永远不会执行.我该如何解决?
import {Response, Http} from '@angular/http';
import {Observable} from 'rxjs/Rx';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';
Run Code Online (Sandbox Code Playgroud)
this.http.get("/api/getData").map(data => {
console.log('get')
return data.json()
})
.retryWhen(err => {
console.log('retry')
return err.delay(1000).take(5)
})
.catch(err => {
console.log('catch')
this.handleHttpError(err)
return err
})
.subscribe(data => {
console.log('subscribe')
console.log(data)
})
Run Code Online (Sandbox Code Playgroud) 我可以打电话
fs.readdirSync("C:\\", { withFileTypes: true })
Run Code Online (Sandbox Code Playgroud)
并获得数组fs.Dirent,但它们看起来像
> fs.readdirSync("C:\\", { withFileTypes: true })[32]
Dirent { name: 'Windows', [Symbol(type)]: 2 }
> fs.readdirSync("C:\\", { withFileTypes: true })[21]
Dirent { name: 'pagefile.sys', [Symbol(type)]: 1 }
> fs.readdirSync("C:\\", { withFileTypes: true })[10]
Dirent { name: 'Documents and Settings', [Symbol(type)]: 3 }
Run Code Online (Sandbox Code Playgroud)
所以有一个名称和类型,但类型隐藏在 Symbol(type) 下,我找不到任何信息如何从那里获取它。
当然,我可以使用像
> x = fs.readdirSync("C:\\", { withFileTypes: true })[10]
Dirent { name: 'DoYourData iCloud Backup', [Symbol(type)]: 2 }
> x[Object.getOwnPropertySymbols(x)[0]]
3
Run Code Online (Sandbox Code Playgroud)
但这似乎很奇怪。
如果它是出于目的而隐藏的,并且除了名称之外没有任何公共内容,那么我不明白为什么我们在选项中使用特殊标志来获取对象而不是简单的字符串。
javascript ×5
typescript ×4
angular ×2
arrays ×1
c ×1
debugging ×1
ecmascript-6 ×1
fs ×1
node.js ×1
observable ×1
rxjs ×1
scanf ×1
tuples ×1