当全局定义时,自定义过滤器不起作用
Vue custom filter does not work when defined globally
这是jsFiddle的例子:
html:<div id="demo">
does not show $ sign in input as in second input - why? <br>
<!-- the diff is only that filter is defined diferently -->
<input type="text" v-model="a | currencyDisplay">
<span >model value: {{a }}</span>
</div>
Js:
Vue.filter('currencyDisplay', {
currencyDisplay: {
// model -> view
// formats the value when updating the input element.
read: function(val) {
console.log('filter red');
return '$'+val.toFixed(2)
},
// view -> model
// formats the value when updating the data.
write: function(val, oldVal) {
console.log('filter write');
var number = +val.replace(/[^'d.]/g, '')
return isNaN(number) ? 0 : number
}
}
})
var demo = new Vue({
el: '#demo',
data: {
a: 5
}
})
当我查看文档示例的源代码时,他们写了这样的代码:
new Vue({
el: '#two-way-filter-demo',
data: {
money: 123.45
},
filters: {
currencyDisplay: {
read: function(val) {
return '$'+val.toFixed(2)
},
write: function(val, oldVal) {
var number = +val.replace(/[^'d.]/g, '')
return isNaN(number) ? 0 : number
}
}
}
})
区别在于定义过滤器的方式。但根据文件,它必须是双向的。这里出了什么问题?
http://jsfiddle.net/yMv7y/975/您应该从全局过滤器中删除currencyDisplay
键:
Vue.filter('currencyDisplay', {
read: function (val) {
return '$' + val.toFixed(2)
},
write: function (val, oldVal) {
var number = +val.replace(/[^'d.]/g, '')
return isNaN(number) ? 0 : number
}
})
相关文章:
- 如何在angular.js中动态应用自定义过滤器
- AngularJS自定义过滤器未触发点击事件
- Vue.js如何在定义API变量之前实现自定义过滤器
- 用于分页的 AngularJS 自定义过滤器
- 为什么我的自定义过滤器会导致无限消化
- 如何仅在文本字段中有值时才将自定义过滤器应用于 ng-repeat
- 指令中的 AngularJS 自定义过滤器以格式化值
- Angular自定义过滤器在处理某些匹配时注销,但会过滤掉所有结果
- Angular js自定义过滤器未定义
- AngularJS自定义过滤器调用了两次,并在第二次调用时删除输入数据
- 自定义过滤器的问题,我缺少什么
- 如何在Angular 1.3.6上创建一个自定义过滤器来搜索嵌套数组
- json数组angularjs中的自定义过滤器
- 两个日期之间的自定义过滤器 AngularJS
- PG-promise为选择查询创建自定义过滤器
- 角度.js. 如何计算满足自定义过滤器的 ng 重复迭代
- Angular JS“Startswith”自定义过滤器
- 无法让 Angular 自定义过滤器工作
- AngularJS自定义过滤器被调用两次
- 如何使用 Angularjs 创建自定义过滤器