Visualforce页面Vue组件中如何传递选中账户的acc.Name给addToTerriotry方法
解决方法:获取选中账户名称并传递到
addToTerriotry方法 没问题,我来帮你搞定这个需求!要把选中账户的acc.Name值拿到addToTerriotry方法里使用,其实只需要两步:筛选选中项、提取名称,具体修改如下:
1. 修改addToTerriotry方法
直接在方法里对this.items做过滤和映射,就能拿到所有选中账户的名称数组:
methods: { selectDeselectAccount: function (props) { props.item.selected = props.item.selected ? false : true; this.accountsSelected += props.item.selected ? 1 : -1; }, showaccount: function (props) { this.selectedaccount = props.item; this.accdetails = true; }, addToTerriotry: function () { // 筛选出所有被选中的账户 const selectedAccounts = this.items.filter(acc => acc.selected); // 提取这些账户的Name属性,得到纯名称数组 const selectedAccountNames = selectedAccounts.map(acc => acc.Name); // 现在你可以用这个数组做任何操作,比如打印或传给Apex方法 console.log('选中的账户名称:', selectedAccountNames); alert(`要添加的账户:${selectedAccountNames.join(', ')}`); // 将名称数组传给你的CallApexMethod CallApexMethod(selectedAccountNames); } }
2. (可选)优化模板中的循环渲染
你原来的模板是先循环所有items再判断selected,可以改成直接循环过滤后的结果,这样更高效,同时加上Vue要求的:key属性(用账户Id做唯一标识是最佳实践):
<v-dialog v-model="addToTerr" max-width="1000"> <v-card> <v-card-title class="headline">Review Selected Accounts</v-card-title> <v-card-text> <!-- 直接循环筛选后的选中账户,同时添加key --> <div v-for="acc in items.filter(acc => acc.selected)" :key="acc.Id"> {{acc.Name}} </div> </v-card-text> <v-card-actions> <v-btn color="secondary" v-on:click="addToTerriotry">Add</v-btn> <v-btn v-on:click="addToTerr = false">Close</v-btn> </v-card-actions> </v-card> </v-dialog>
这样修改后,addToTerriotry方法里就能轻松拿到所有选中账户的名称,接下来就可以顺利调用你的Apex方法啦!
内容的提问来源于stack exchange,提问作者javascript_learner
相关产品推荐
相关产品推荐

