property和attribute在td中经常使用,像这样:rowspan="3"。在当前angular项目中,需要使用动态绑定rowspan。本来以为,html:ts:ngOnInit():void{setTimeout(()=>{this.row=5},5000)}测试结果:根据页面显示,看到row=5是正常的。但是console给出了ng100warning。错误:NG0100:ExpressionChangedAfterItHasBeenCheckedError:Angular仅在开发模式下抛出此错误。地址:https://angular.io/errors/NG0100Angular绑定总结:1.使用[]从source绑定到view 2.使用()从view绑定到source
初始化时绑定一次,尽量避免在v层渲染完成后再改变。 从源绑定。注意S是大写的,和Attribute不同。猜想是后来加的属性。TypeScript当时将元素压入指定位置数组的目的:在数组中找到特定的数组下标,压入到执行下标位置。但是看了函数声明后发现push并没有其他的重载方法。后来本来想用loops、concat等方法重构一个数组。不过偶然看了一下拼接方法。原以为这个函数就是一个简单的删除函数,结果看到第三个参数,发现可以用来pushitem1,item2,...——要添加到数组中的元素,从start开始。如果不指定任何元素,splice()将只从数组中删除元素。item1,item2,...–要添加到数组的元素,从头开始。如果没有指定元素,splice()将简单地从数组中删除元素。所以它可以这样使用:this.array.splice(index,0,entity);删除0个元素,并从头开始添加一个实体。问题3:当时在ts中记录了一个row变量,ts:row=0;每次循环都需要设置row-1,从而控制某个标签的输出。现在想想原因应该是:括号中的值表示绑定到html的变量。v层根据{{row}}中的变量显示row的值。类似于使用[]从源绑定到视图。但是如果使用等号,v层不知道要绑定什么变量,所以会报错。印象中thinkphp可以直接在html中使用{{$name="张三"}},没想到这里也行。然后改为函数形式。
