From 4e69bd312d918d0a7bb263a98aea73ee1f3b8f90 Mon Sep 17 00:00:00 2001 From: qiang Date: Tue, 15 Sep 2020 16:38:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20App=20=E7=AB=AF=20d?= =?UTF-8?q?ata-set=20=E9=83=A8=E5=88=86=E6=95=B0=E6=8D=AE=E4=B8=BA=20strin?= =?UTF-8?q?g=20=E7=B1=BB=E5=9E=8B=E6=97=B6=E6=98=BE=E7=A4=BA=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98=20question/100073?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app-plus/service/framework/plugins/data.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/platforms/app-plus/service/framework/plugins/data.js b/src/platforms/app-plus/service/framework/plugins/data.js index d3bb00b98..97000da68 100644 --- a/src/platforms/app-plus/service/framework/plugins/data.js +++ b/src/platforms/app-plus/service/framework/plugins/data.js @@ -6,7 +6,7 @@ import { import { MOUNTED_DATA, - UPDATED_DATA, + UPDATED_DATA, VD_SYNC_VERSION } from '../../../constants' @@ -137,6 +137,10 @@ function parseExternalClasses (clazz, vm) { return clazz } +function isNotSafeString (value) { + return value === 'null' || value === 'true' || value === 'false' || !isNaN(Number(value)) || (value.startsWith('[') && value.endsWith(']')) || (value.startsWith('{') && value.endsWith('}')) +} + function setData (id, name, value) { switch (name) { case B_CLASS: @@ -157,7 +161,7 @@ function setData (id, name, value) { return setForData.call(this, id, value) } // TODO 暂时先传递 dataset 至 view 层(理论上不需要) - if (name.indexOf('a-data-') === 0) { + if (name.indexOf('a-data-') === 0 && (typeof value !== 'string' || isNotSafeString(value))) { try { value = JSON.stringify(value) } catch (e) {} @@ -203,4 +207,4 @@ function setForData (id, value) { (vForData[forIndex] || (vForData[forIndex] = {}))['k' + value.keyIndex] = key } return key -} +} -- GitLab