- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
长话短说
我正在尝试从 JSON 动态构建 UI。 JSON 表示具有应用程序状态(变量)和以这些变量为条件的 UI 构建逻辑的 vue.js 应用程序。
"type": "switch"
的 JSON 对象(参见下面链接的 fiddle ),指示 vue.js 应用程序显示多个 "case": {"case1 ": {..}, "case2": {..}}
取决于状态变量的值 "variable": "key"/*转换为 vueApp.key */
.
更改其中一个变量 (update_status
) 最初会导致 DOM 更新。遗憾的是,在安装应用程序后再次更改它不会影响 DOM。我很确定我正在做一些愚蠢的事情或遗漏了一些微妙的事情。
稍长的版本:
(如果你还在读这篇文章,please look at the fiddle 在这一点上。没有它,下面的任何内容都没有意义。谢谢!)
Vue.js 模板(使用 app.variables.update_status = "available"
)
<script type="text/x-template" id="template-switch">
<div>
<!-- Debug statements -->
Switch cases: {{data.cases}}<br>
Variables: {{$root.variables}}
<div v-for="(value, key) in data.cases">
<div v-bind:class="$root.variables[data.variable]"
v-if="key == $root.variables[data.variable]">
<all-components v-bind:data="value"></all-components>
</div>
</div>
</div>
</script>
输入 JSON(绑定(bind)为上述模板中的 data
):
{
// Switch on value of app.variables.update_status
"type": "switch",
"variable": "update_status", // Refers to app.variables.update_status
// Used in <script id="template-switch">
"cases": {
// if app.variables.update_status == "checking" (Initial value)
"checking": {
"type": "paragraph",
"text": "Checking for updates"
},
// if app.variables.update_status == "available" (Changed below)
"available": {
"type": "paragraph",
"text": "Updates available."
}
}
}
我的问题:
假设 app
是 Vue.js 应用程序,我预计设置 app.variables.update_status = "available"
应该会导致 DOM 更改。但它并不像 TL;DR 部分中描述的那样。我希望了解原因。
我尝试过的:
object[key]
表达式。 But its definitely able to do it. 试试吧!
这是 JS Fiddle (大幅缩小,并评论以便于理解 :))
尝试什么:
一旦 fiddle 运行,打开浏览器控制台并尝试执行以下语句:
DEBUG.variables.update_status = "available";
DEBUG.variables.update_status = "检查中";
Vue.js 版本:2.5.16
此外,我刚刚发现如果我将数据对象传递为:
new Vue({.., data: { .. , variables: {update_status: "temp"}}})
——它有效!
这个我不太懂,主要是variables字段设置了deep watcher。我假设当它的字段更新时(例如 variables.update_status = "new-value";)
,观察者最终会触发 DOM 更新。但出于某种原因,这并没有发生。
我真的希望我在做一些愚蠢的事情,这不是一个错误。
显示此行为的新 Fiddle 链接:https://jsfiddle.net/g0z3xcyk/
最佳答案
它不会在您的第一个 fiddle 中更新的原因是因为 Vue 不检测属性添加或删除,并且您在实例化 vue 时没有传递 update_status
属性,the docs explain it further .
在你的第二个 fiddle 中,你在实例化 vue 时设置 update_status
,这就是为什么在这种情况下会检测到更改。
另一种选择,如文档中所述,是使用 Vue.set
或通过使用 Object.assign
再次分配它来完全重新创建对象
关于javascript - Vue 不会在 'indirectly' 更改表达式的值时更新 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50999171/
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我意识到这个问题已经提出,但是由于与我在类似问题上看到的原因不同,导致了我的原因,所以这是我的设置。 我有2个C#项目A和B,项目B引用了一个第三方库Indirect。 A将调用在B中定义的静态方法,
我想要实现的是,如果 AB 列中的一个单元格等于"is"并且 AC 列中的一个单元格是空白的,那么一定范围的单元格将被格式化。目前,该规则没有格式化它应该格式化的单元格。我将此代码基于我正在使用的另一
我正在尝试动态计算电子表格的每周周数,因为每周都会在标题中的日期将新数据添加到列中。我的数据如下所示: Name WoW 9/27/2018 10/4/2018 10/11/2018
我已经四处寻找如何对整列(在另一张纸上)使用间接命令,但 react 有限 我见过它必须是这样的 =SUMIF(Site!$A:$A,D11,indirect("Site!$F",Row($F)) 我
我在下面有一个 INDIRECT 公式,问题是当我将“F3”单元格拖动到填充单元格时,它似乎不是相对的。 =INDIRECT("'Sheet 2'!F3") 如何使“F3”相对? 谢谢!! 最佳答案
我正在寻找一种方法,使间接公式忽略错误并打印 0。我让它以一种迂回的方式工作,但希望它更整洁。 我有一个INDIRECT公式来从单独的工作表加载单元格 =INDIRECT("'Invoice (2)'
我有几个单元格计算来自多个工作表的单个单元格的总数,在这种情况下,来自 Week 中的每个工作表的“Y3”,其中 n 是从 1 到 10 的整数: =SUMPRODUCT(COUNTIF(INDIRE
我正在尝试使用自定义创建的引用字符串从表中引用总计。这基本上可以正常工作,直到我在以不同语言安装的 excel 中打开电子表格。所以我所拥有的是: INDIRECT("Attendees[[#Tota
我在这个示例中有 4 张纸,每张纸都有一个 A1 中的值,如下所示: Sheet1 - A1=18 Sheet2 - A1=15 Sheet3 - A1=197 Sheet4 - A1=534 然后在
我不理解这个错误(C2100:非法间接)。我标记了三个实例——都在底部附近。我在网上看过,我知道这与我的指示有关,但在 8 小时后,我完全迷路了。这里可能还有其他一些错误,但我什至无法分辨,因为我无法
我想使用 Excel 中的间接函数引用另一个工作簿,假设其名称为“My workbook.xlsm”。 但是,“我的工作簿”文件名之前或之后可以有任何其他字符串/字符。 假设我正在尝试查找“查找值”
所以我有二维 boolean 数组 a,它应该代表不同人之间的关系/友谊。每个人都通过他们的 id(数组索引)来识别,如果例如a[1][0] 为 true,则 1 和 0 是 friend 。如果 2
据我了解,如果 H4 中的值为 5,则有两种方法可以引用该单元格: =H4 和 =INDIRECT("H4") 不过,我无法找到一种方法来使其与名称引用一起工作。例如,如果我想计算一些数据的总和,我可
我正在尝试动态分配一个连续的内存块,存储一些整数值并显示它。 #include #include void main() { int i; int *ptr; ptr=
我正在尝试解决命题逻辑中的一个问题,我认为我从未在任何地方看到过这个问题。我将它张贴在这里,看看是否有人有一个有希望的标准解决方案。 问题:给定一个命题可满足逻辑公式F和一个出现在F中的命题p,判断是
p是一个指向数组arr的指针,我们可以通过*p获取数组arr ,但是为什么用*p[2]获取不到第二个元素呢? 会报错: invalid indirect of p[1] (type int) 以下代码
看各种pages in the Android docs ,其中一些列出了“已知的间接子类”。这是什么意思? 最佳答案 对于接口(interface),它是实现该接口(interface)的类的列表。
我目前正在使用公式 =匹配(A2,间接(Q20):间接(Q22),0)其中 A2 包含要在一个范围内搜索的项目。范围是动态的,Q20 的起点为 =地址(Q17,3,4) Q22 持有 =地址(Q18,
我需要使用 Excel Indirect() 函数来引用非连续范围。这个( How to define a non continuous range in COUNTIF )答案给出了一个例子。 总之
我是一名优秀的程序员,十分优秀!