- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个设置选项,它将从父组件更新。我将这些设置数据保存在 localStorage 上,这三个子组件正在使用设置数据。
<P>
<c1> </c1>
<c2> </c2>
<c3> </c3>
</P>
我想要一种方式,当我更新我的设置数据时,三个组件将刷新或更新以获取新值。例如,我将在父组件上按下一个按钮,然后将更新三个子组件。
------------------------更新-------------------- --------
模板部分:
<template>
<div class="main-content">
<div class="main">
<!-- COMPONENT -->
<div class="row">
<div class="padpad">
<div class="col-md-6">
<app-colma></app-colma>
</div>
<div class="col-md-3">
<app-colmb></app-colmb>
</div>
</div>
</div>
<!-- SAVE BUTTON -->
<button type="submit" class="btn btn-success" data-dismiss="modal" aria-label="Close" v-on:click="onSubmit()"><span>Save</span></button>
<!-- DATA FORM ( SELECT, OPTION) -->
<div class="container modal-body">
<div class="col-xs-12 col-md-3">
<h4>Sortierung</h4>
<div class="radio">
<label><input value="theropeut" type="radio" name="filterop">Theropeut</label>
</div>
<div class="radio">
<label><input value="ausl_perf" type="radio" name="filterop">Ausl Perf</label>
</div>
<div class="radio">
<label><input value="ausl_bud" type="radio" name="filterop">Ausl Bud</label>
</div>
<div class="radio">
<label><input value="umsatz" type="radio" name="filterop">Umsatz</label>
</div>
<div class="order-select">
<select id="orderid" class="form-control">
<option value="ascending">Ascending</option>
<option value="descending">Descending</option>
</select>
</div>
</div>
</div>
</div>
</template>
脚本代码:
<script>
import ColmA from './ColmA.vue';
import ColmB from './ColmB.vue';
import ColmTotal from './ColmTotal.vue';
export default {
components: {
'app-colma': ColmA,
'app-colmb': ColmB,
'app-colmtotal': ColmTotal
},
name: 'main-content',
data() {
return {
users: [],
filtr:'',
order:''
}
},
methods: {
onSubmit: function(){
// console.log("onsubmit");
//filter
var filterop = document.getElementsByName('filterop');
for (var i = 0, length = filterop.length; i < length; i++) {
if (filterop[i].checked) {
// do whatever you want with the checked radio
// alert(filterop[i].value);
this.filtr = filterop[i].value;
// only one radio can be logically checked, don't check the rest
break;
}
}
//order
var e = document.getElementById("orderid");
this.order = e.options[e.selectedIndex].value;
var homesetting = {
filter: this.filtr,
order:this.order,
};
if (localStorage.getItem('homesetting') === null) {
var homesettings = [];
// homesettings.push(homesetting);
localStorage.setItem('homesetting', JSON.stringify(homesetting));
} else {
localStorage.removeItem('homesetting');
localStorage.setItem('homesetting', JSON.stringify(homesetting));
};
}
},
created: function () {
this.fetchData();
}
}
</script>
组件代码:
<script>
export default {
name: 'colma',
data () {
return {
title: 'A Area',
colmAdata:[]
}
},
methods: {
fetchData: function () {
var self = this;
var homeObject = JSON.parse(localStorage.getItem('homesetting'));
// console.log('retrievedObject: ', retrievedObject.filter);
var filter= homeObject.filter;
var order= homeObject.order;
// HERE I NEED MY TWO UPDATED VARIABLES
var a = 'http://localhost:3000/'+'_'+filter+'_'+order;
console.log('A',a);
$.get(apiURL, function (data) {
self.colmAdata = data;
// self.$store.state.storeGdata = ' store data from content';
// console.log(data.people[0].name);
});
}
},
created: function () {
this.fetchData();
}
}
</script>
最佳答案
如果您使用 Vue.JS,您应该真的只使用 Vue.JS - 父级应该有一个模型,其中包含您的设置作为 react 数据。然后,您将此属性作为属性 传递给您的组件,并且该组件只是在该属性上定义一个观察器。
var localStore = { reason: 'Fake, because no localStorage in Sandbox' };
Vue.component('rows', {
props: ["order"],
data: function(){ return { values: [] } },
template: `<ul><li v-for="v in values">{{v}}</li></ul>`,
created: function() { this.fetchValues() },
watch: { order: function() { this.fetchValues() } },
methods: { fetchValues: function() {
/* Placeholder for an ajax-call with order as a parameter */
this.values = ( this.order == 'ascending' ) ? [1,2,3] : [3,2,1]
} }
})
new Vue({
el: '#main',
data: { order: 'ascending' },
created: function() {
if ( localStore.order ) {
this.order = localStore.order;
}
},
watch: { order: function() {
/* Save any change on order in the local storage */
localStore.order = this.order;
} }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.4.4/vue.js"></script>
<div id="main">
<select v-model="order">
<option value="ascending">Sort Ascending</option>
<option value="descending">Sort Descending</option>
</select>
<rows :order="order"></rows>
</div>
关于javascript - 当我在 Vue JS 的父组件上按下按钮时如何刷新子组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46401405/
我们知道,当使用 hibernate 对数据库进行批量更新时(即使在 HQL 中),所做的更改不会复制到存储在当前 session 中的实体。 所以我可以调用 session.refresh 来加载对
我正在做一个项目,所有的东西都保存在事件中,所以服务器需要一些时间来响应新数据。我正在使用 Fluent 等待使用 ajax 的页面,但是这个不使用任何 ajax。所以我想刷新页面检查是否有新项目,如
我有一个从 Vector 创建的 JTable。 如何刷新 JTable 以显示添加到 Vector 的新数据? 最佳答案 当 TableModel 发生更改时,您的 JTable 应该会自动更新。我
有没有办法使用下面的代码来刷新已经存在的 div id,而不是刷新时间? window.onload = startInterval; function startInterval() {
我更新了在 Shiny Server 上运行的 Shiny 应用程序使用的 DataSet.RData。但是, Shiny 的应用程序仍在旧数据上运行。我已通过浏览器历史记录清除并重新启动浏览器几次,
我的应用程序中有一个无限滚动的网格面板(ExtJs 4.2.1),类似于 this example .用户可以单击刷新按钮,然后必须使用数据库中的数据更新网格的行。我在刷新按钮处理程序中调用 stor
我不知道这三种方法中哪一种最适合我。他们都为我工作。有谁知道刷新、更新和重画之间的区别吗? 最佳答案 根据在线文档: Refresh - 重新绘制屏幕上的控件。 Call Refresh method
有什么办法吗 ICollectionView.Refresh() 或者 CollectionViewSource.GetDefaultView(args.NewValue).Refresh(); 在
这个问题已经有答案了: Updating address bar with new URL without hash or reloading the page [duplicate] (4 个回答)
我有一个 javascript 设置超时以在 10 秒后关闭 div,并且我想在 div 关闭时添加页面刷新。我正在使用的代码如下。 var container_close_sec = "1
我有一组具有以下名称的页面.... update1.php update2.php update3.php update4.php update5.php update6.php update7.ph
如果是则触发js函数。我可以使一个复选框保持选中状态,并在页面刷新时检查值并选中“checked”,并提交以下内容... checked="checked" /> 你都不记得触发js函数。 这是我的
我正在尝试刷新 php 脚本以在数据库更新时显示更新的内容。我首先构建了我的 php,然后刷新代码,然后合并它们。但是,脚本不会更新。有谁知道为什么吗? $(document).ready
当我要删除的节点扩展集合类型时,Grails中有一个错误阻止我使用removeFrom *。直接从关联中删除节点不会更新二级缓存。 A hasMany B 有什么方法可以使关联缓存手动无效或强制重新加
我正在使用 hibernate 和 mysql 来抽象一个数据库,以便在 java 驱动的网站中使用。我使用 hibernate 很好地解决了所有查询,但似乎无法弄清楚如何使用它进行更新、插入和删除,
如何通过调用 oncreateview 方法重新创建 fragment ?我有一个 fragment ,用于通过表单插入新数据,单击按钮后,我想通过删除在 EditText 中输入的数据来重新创建 f
当我从一个到另一个时,我试图刷新我的观点。我知道我应该将刷新代码放在 viewWillAppear 中,但我不知道该放什么代码。 你们能帮帮我吗? 谢谢! 最佳答案 在您看来,请调用 setNeeds
我正在开发 iPhone 应用程序并希望使用: CFStreamCreatePairWithSocketToHost(NULL, url, port, &serverReadStream, &serv
看到我已经创建了一个用于登录用户的脚本。而且我还添加了设置选项卡,以便用户可以编辑他们的设置!但是当我尝试它时,mysql 表中的数据发生了变化,但配置文件中显示的用户名和用户电子邮件保持不变!当我注
好的。这就是它的样子。 当我启动应用程序时,我从服务器收到的第一件事是数据: {name: "test", type: "checkbox" checked: true, } 这使得其中一个复选框
我是一名优秀的程序员,十分优秀!