增量属性与按钮和输入的交互
Ember: incrementProperty interaction with button and input
我有一个数字属性,可以通过单击按钮(使用incrementProperty)或通过直接输入文本字段来更改。
当两者同时使用时,incrementProperty开始在数字的末尾添加"1",而不是对其进行递增。
查看我修改的这个简单Ember jsbin中的问题。
复制:
- 在文本框中输入数字
- 点击+按钮。
奇怪的是,decrementProperty似乎工作正常。如果您按照上面的步骤,然后单击-按钮,似乎将值从字符串重置为数字,并且递增和递减都可以正常工作。类似地,如果您输入一个数字并单击-按钮,一切都会正常工作。这是一个错误,还是我错过了什么?
看起来incrementProperty
正在执行连接操作,而不是数字加法,因为输入助手将值设置为string
。
如果你看到incrementProperty
方法的源代码,你可以发现下面这行应该执行增量操作。
set(this, keyName, (get(this, keyName) || 0) + increment);
这可以根据键的值执行数字相加或连接。
decrementProperty
工作良好,因为-
操作符没有过载。例如,"22" - 1
返回21。
string
。
App.ApplicationController = Ember.Controller.extend({
age: 36,
ageDidChange: function () {
console.log(typeof(this.get('age')));
}.observes('age'),
actions: {
older: function() {
this.set('age', parseInt(this.get('age'), 10) + 1);
},
younger: function() {
this.decrementProperty('age');
}
}
});
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 可以't让我的if语句处理js中的html表单输入
- 名称输入的索引
- 如何编写HTML输入的JS内联
- 要求输入在数据列表中
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 如何将输入(type=text)从html表单传递到javascript函数
- 单击jquery清除输入值
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- jQuery自定义验证比较多个输入的序列
- Sails.js:同时发布文本输入和一个文件
- 在Windows 10中自动执行例行程序(主要与浏览器交互)
- 使用JavaScript验证用户交互/输入-这是一种很好的方法
- 使用Javascript与选择输入交互
- 如何与Node.js进程中的C++程序输入流进行交互
- 在交互方面,不要允许文本输入中的第一个字符是一个空格或一组空格
- 无法使用Selenium WebDriver(Firefox)与输入(role=combobox)进行交互
- 增量属性与按钮和输入的交互