vue.js - 为什么观察者不运行?
问题描述
我有以下名为 的数据属性selector
,我在其中设置了它的初始值,mounted()
因为它是一个 HTML 元素,由于加载也有一些延迟,我将它的值设置在setTimeout()
. 然后,每当我选择不同的选项时,它value
显然应该改变。我们应该注意这种变化。现在watcher
似乎不起作用,我不明白为什么。有人可以帮忙吗?
我的数据属性:
data() {
return {
selector: " ",
}}
我的观察者:
watch: {
// whenever selector changes, this function will run
selector: function(newSelection) {
console.log("in watcher", newSelection);
$(".page-item a").each(function() {
if ($(this).text() == ">") $(this).text(" ");
else if ($(this).text() == ">>") $(this).text(" ");
else if ($(this).text() == "<") $(this).text(" ");
else if ($(this).text() == "<<") $(this).text(" ");
});
}
},
和mounted()
mounted() {
setTimeout(function() {
document
.getElementsByTagName("select")[0]
.setAttribute("id", "VueTables__limit");
this.selector = document.getElementById("VueTables__limit").value;
console.log("in mounted", this.selector);
}, 2000);
}
HTML:
<div class="form-group form-inline pull-right VueTables__limit">
<div class="VueTables__limit-field">
<label for="VueTables__limit" class="">Records:</label>
<select name="limit" id="VueTables__limit" class="form-control">
<option value="10">10</option>
<option value="25">25</option>
<option value="50">50</option></select></div></div>
解决方案
更新您的mouted
功能:
mounted() {
var self = this; //save the ref of 'this'
setTimeout(function() {
document
.getElementsByTagName("select")[0]
.setAttribute("id", "VueTables__limit");
self.selector = document.getElementById("VueTables__limit").value;
console.log("in mounted", this.selector);
}, 2000);
}
推荐阅读
- scala - Spark sql优化技术将csv加载到hive的orc格式
- python - 无法覆盖自定义字段 __init__ 并进行迁移,抛出错误
- c++ - 了解此 printf 的结果
- python - Postgres 仅在部署到 Heroku(Flask)时才返回意外结果
- javascript - 在 Javascript 对象数组中查找递归(循环)id
- scipy - 是否可以解决 python 的 RegularGridInterpolator 中的输入?
- javascript - 你能用JS移动一个div吗?
- ruby - 简单的红宝石,除非方法错误
- c# - 如何在C#中检测控件是否是按钮
- javascript - 无法从 cpanel 连接我在 mongodb atlas 上创建的 mongodb 集群