午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - vue模板中變量非真時的默認(rèn)值

瀏覽:150日期: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>

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

我的嘗試

<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> 當(dāng)其值非真時渲染成'--' ,前提是不要污染原始數(shù)據(jù)x

問題解答

回答1:

可以用 filter 來實現(xiàn)這個效果:

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 的內(nèi)部屬性,模版中的每一個文本節(jié)點都會被這個方法處理,將返回值進行渲染,由于是內(nèi)部屬性,所以在版本更新時不能保證穩(wěn)定性,這點要注意。附上 Demo:https://codepen.io/cool_zjy/p...

回答2:

可以運用三目運算符吧,

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

這個就是相當(dāng)于一個if判斷語句,

回答3:

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

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

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

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: 私人毛片 | 日韩精品视 | 岛国大片在线免费观看 | 久草福利在线观看 | 麻豆视频播放 | 午夜激情久久 | va在线| 日本黄色高清视频 | 天堂一区| 欧美性吧 | 久久久久久久免费视频 | av在线免费播放网站 | 中文字幕+乱码+中文字幕明步 | 欧美日韩一区二区三区四区 | 人人干在线 | 欧美激情图片小说 | 国产成人综合自拍 | a级在线免费观看 | 中文字幕影音先锋 | 国产精品18 | 久久久久久一级片 | 国产绿帽刺激高潮对白 | 久久黄色网 | 国产精品成人一区二区 | 伊人久久青青 | 久久免费在线观看 | 看av的网址| xxxx操| 超碰2020| 国产欧美在线播放 | 久久久久久久久成人 | 国产偷人| 亚洲欧美国产精品专区久久 | 欧美专区亚洲专区 | 国产综合影院 | 狠狠操在线观看 | 天堂在线观看av | 亚洲国产一级 | 精品一区二区三区免费 | 亚洲国产网站 | 91视频在线看 |