第一种:
this.data.userName = “admin”;
this.setData(this.data);
第二种:
this.setData({
userName : ‘admin’
});
请问这两种方式有区别吗?
是“有效果”,还是“没有效果”?
如果你的问题是为什么没有效果,我的解释是:
setData期望的值是一个对象。如果e.detail.value的值是一个对象,即{},你值入的值是{{}},解释器无法理解;如果e.detail.value是一个简单类型(字符串),你值入的值是{string},也是错的(对象缺少键名)。
正确的写法:
userName是对象:this.setData(userName);
userName是字符串: this.setData({userName: userName});
// 根据属性名设置的方法(不知道你要找的是不是这个,送你了,不谢):
var params = [ ];
params[propertyName] = val;
this.setData(params);
我可以
var obj;
obj[‘userName’] = e.detail.value;
this.setData(obj);
也可以
var userName = e.detail.value;
this.setData({userName});
这两个都可以出现效果
主要是想封装一个input的template,左中右分别为label标签,input框,后缀单位。
使用bindinput事件,所以我得传一个方法进去。
不能写死,但输入的值得放在this.data的某个属性里面,所以设计了一个data-bind-property传入这个属性的名字,
就找到了第一种写法,第二种方法不知如何实现