我的最终目标是让textarea元素自动聚焦于创建.我刚刚想到了一个调用e.target.focus()事件的解决方案onload.就像是:
<textarea rows="8" col="60" (load)='handleLoad($event)'>
Run Code Online (Sandbox Code Playgroud)
然后:
handleLoad(e){
e.target.focus();
}
Run Code Online (Sandbox Code Playgroud)
问题是角度无法识别load事件.
PS:我试过autofocus一次,但似乎没有用.
我有一个小表达式来检查2个对象是否不同,以显示这个元素(通过添加类名):
<div ngClass='{{JSON.stringify(obj1) != JSON.stringify(obj2) ? "div-show" : ""}}'></div>
Run Code Online (Sandbox Code Playgroud)
问题是我得到这个错误:
Cannot read property 'stringify' of undefined.
我需要一种解决方法,或者提供适当的解决方案.谢谢.
PS:我使用JSON.stringify()比较2个简单的对象,这里没什么好看的.
我有一个隐藏的输入来控制jQuery所做的更改,包括一个angular2事件change,就像这样
<input id='input1' hidden (change)='onChange($event)'>
Run Code Online (Sandbox Code Playgroud)
然后在我的情况下,我必须使用jQuery来更改此输入的值,然后触发change事件:
$('#input1').val('somevalue').trigger('change');
Run Code Online (Sandbox Code Playgroud)
change我通过jQuery触发的这个事件只适用于jQuery,但不适用于Angular2:
//This is working
$('#input').change(function(){
console.log('Change made');
})
Run Code Online (Sandbox Code Playgroud)
在angular2组件中:
//This is not working
onChange(): void{
console.log('Change made');
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下我该如何解决?
我有一个变量保存我的班级名称字符串:
classNameB = "class-B";
Run Code Online (Sandbox Code Playgroud)
我想通过以下方式将此类名称添加到本地DOM元素[attr.class]:
<div class="class-A" [attr.class]='classNameB'></div>
Run Code Online (Sandbox Code Playgroud)
然后,angular覆盖当前的DOM类class-A。创建元素后剩下的内容如下:
<div class="class-B"></div>
Run Code Online (Sandbox Code Playgroud)
我在这里做错什么,以及如何解决这个问题?
PS:我可以[ngClass]代替使用,如何使用?
初始状态:
this.state = {
someVar: true
};
Run Code Online (Sandbox Code Playgroud)
如果我的代码设置状态值与旧代码相同怎么办:
this.setState({
someVar: true
});
Run Code Online (Sandbox Code Playgroud)
第二个片段是否执行?如果它执行并运行多次,它是否会降低性能?