vue的v-bind:value=""中使用过滤器

<input type="text" disabled="disabled" class="fl" v-bind:value="details.loanCardCode | bankCard"/>
filters : {
        moneyFormat : function(value){
            return Utils.moneyFormat(value)
        },
        bankCard : function(value){
            if(/\S{5}/.test(value)){
                return value.replace(/\s/g,'').replace(/(.{4})/g, "$1 ").replace(/\s$/,'')
            }
        }
},

代码如上
浏览器会报“TypeError: Cannot read property 'replace' of undefined”这个错误,指示到return value.replace(/\s/g,'').replace(/(.{4})/g, "$1 ").replace(/\s$/,'')这行代码上
请问是什么问题?
当写成<input type="text" disabled="disabled" class="fl" v-bind:value="bank | bankCard"/>的时候是好的,是details.loanCardCode这里出错了吗?

阅读 8.6k
1 个回答

绑定改为:(details.loanCardCode || '') | bankCard

因为 details.loanCardCode 有可能是 undefined

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题