亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術文章
文章詳情頁

javascript - vue模板中變量非真時的默認值

瀏覽:82日期:2023-06-06 11:45:08

問題描述

問題描述:

<template> <p><section>{{x.a}}</section><section>{{x.b}}</section><section>{{x.c}}</section> </p></template><script> export default {name:'xx',data(){ return {x:{ a:'foo', b:null, c:null} }} }</script>

渲染出來為

<p> <section>foo</section> <section></section> <section></section></p>

期望的效果:希望在變量非真時有全局默認值,比如'--'

我的嘗試

<template> <p><section>{{x.a||'--'}}</section><section>{{x.b||'--'}}</section><section>{{x.c||'--'}}</section> </p></template>

這樣雖然可以達到效果 但是太累。每個都要寫一筆。為了偷懶 我改造了一下

<template> <p><section>{{showX('a')}}</section><section>{{showX('b')}}</section><section>{{showX('c')}}</section> </p></template><script> export default {name:'xx',data(){ return {x:{ a:'foo', b:null, c:null} }},methods:{ showX:function(key){const value = this.x[key];return !!value?value:'--'; }} }</script>

想得到的幫助:但是,上述寫法還是覺得不夠方便。有沒有什么辦法 使我可以在模板里還是寫<section>{{x.a}}</section> 當其值非真時渲染成'--' ,前提是不要污染原始數據x

問題解答

回答1:

可以用 filter 來實現這個效果:

new Vue({ data: { message: ’’ }, filters: { e (str) { return str || ’--’ } }})

{{ message | e }}

如果還覺得太麻煩,可以用比較黑科技的手段:

var _s = Vue.prototype._sVue.prototype._s = function (s) { return _s.call(this, s || ’--’)}

解釋一下,_s 是 Vue 的內部屬性,模版中的每一個文本節點都會被這個方法處理,將返回值進行渲染,由于是內部屬性,所以在版本更新時不能保證穩定性,這點要注意。附上 Demo:https://codepen.io/cool_zjy/p...

回答2:

可以運用三目運算符吧,

{{x.a?x.a:’--’}}

這個就是相當于一個if判斷語句,

回答3:

提供個人思路吧,在于你在什么地方去修改data中的x值:

在created時修改,那么直接在修改的地方使用你第一種使用過的短路運算就足夠了

如果是初始化視圖后再修改,那么就設置你的初始為 ’--’, 不就可以嗎?

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 久久亚洲欧洲日产国码 | 欧美成人三级网站 | 久草手机在线播放 | 全部在线美女网站免费观看 | 亚洲精品一区二区久久这里 | 免费看岛国视频在线观看 | 国产精品一国产精品免费 | 欧美一级香蕉毛片 | 看国产一级毛片 | 性欧美videofree另类17 | 在线观看免费精品国产 | 久久国产视频网 | 免费观看成人久久网免费观看 | 美女福利视频午夜在线 | 在线免费观看一级片 | 亚洲国产网站 | 黄色一级片网址 | 96精品免费视频大全 | 免费高清毛片在线播放视频 | 久久视频在线观看免费 | 99久久免费看精品国产一区 | 欧美特级 | 亚洲视频播放 | 国产三级麻豆 | 国产香蕉成人综合精品视频 | 九九午夜| 97超频国产在线公开免费视频 | 国内国产真实露脸对白 | 一级毛片免费播放 | 免费韩国美女爽快一级毛片 | 孕妇孕妇aaaaa级毛片视频 | 亚洲欧美自拍偷拍 | 欧美一级欧美三级在线观看 | 国产激情视频网站 | 国产精品福利午夜一级毛片 | 久久艹在线 | 久久亚洲精品中文字幕亚瑟 | 四色6677最新永久网站 | 成人a毛片在线看免费全部播放 | 日韩欧美中文字幕一区二区三区 | 久久网站在线观看 |