<div>单击div内的按钮是否可以防止元素上的功能运行?
单击按钮元素时,功能:toggleSystemDetails不应该被触发?这可能在Vue吗?
<div v-on:click="toggleSystemDetails($event, system.id);" class="grid-tile__list-item" v-for="(system, index) in organization.systems" :key="system.id" :class="{'in-viewport fully-in-viewport': system.inview, 'is-xsmall': system.layout === 'xsmall', 'is-small': system.layout === 'small', 'is-medium': system.layout === 'medium', 'is-large': system.layout === 'large'}">
<div class="grid-tile__list-item--overlay">
<button v-on:click="toggleTileOptionsMode($event, system.id, system.name, system.layout)">
Layout Settings
</button>
</div>
Run Code Online (Sandbox Code Playgroud)
当 prop 发生变化时,如何强制组件重新渲染?
假设我有一个包含以下内容的组件:
<test-sub-component :layoutSetting="layoutSetting"></test-sub-component>
Run Code Online (Sandbox Code Playgroud)
我的数据对象如下所示:
data() {
return {
layoutSetting: 'large'
}
},
Run Code Online (Sandbox Code Playgroud)
然后,通过单击按钮,我想更改传递的道具的设置,并且组件应该重新渲染,例如
<button @click="changeLayout">Change Layout</button>
Run Code Online (Sandbox Code Playgroud)
和一个像这样的方法
changeLayout() {
this.layoutSetting = 'small';
},
Run Code Online (Sandbox Code Playgroud)
这更改了数据对象,但它不会使用更改后的 prop 重新渲染组件?
我有一个要过滤其键的对象。
我试图通过ID过滤对象,如下所示:
let myKeys = Object.keys(data).filter(function(key) {
//console.log(data[key]);
if(parseInt(key) === parseInt(vm.system_id)) {
return data[key];
}
});
console.log(myKeys);
Run Code Online (Sandbox Code Playgroud)
这部分起作用了-我正在获取密钥,但是,我没有获得此项目下的所有数据/项目,我正在过滤掉
对象即时过滤与此类似:
{
"646": [{
"id": 52144,
"timestamp": "2017-08-17T14:10:23Z",
"type": "alarm",
"code": 210,
"title": "",
"description": "",
"remedy": "",
"appeared": "2017-08-17T14:10:09Z",
"disappeared": null,
"acknowlegded": null,
"solved": null,
"system_name": "CG-MX19D7K5C1",
"system_id": 646,
"system_device_id": 458,
"stream": "cu351.alarm_code"
}
],
"693": [{
"id": 51675,
"timestamp": "2017-08-16T13:59:55Z",
"type": "alarm",
"code": 215,
"title": "",
"description": "",
"remedy": "",
"appeared": "2017-08-16T13:59:57Z",
"disappeared": null,
"acknowlegded": null,
"solved": null,
"system_name": "Demo …Run Code Online (Sandbox Code Playgroud)