Vue用属性传值的问题?

zzyhost 2019-04-17 09:30:57
例:
<div class="mui-input-row mui-radio mui-left" v-for="item in items">
<label>{{item.VNAME}}</label>
<input class="chk" name="radio1" type="radio">
</div>
<button >按钮</button>

需求:点击按钮时我要获取选中的radio的名称VNAME和ID,它们都在item对象里有。
mui('.chk').each(function() {
if(this.checked) {
//这里我要得到选中radio的信息,id和名称
}
})

问:要是能把item对象放到input标签里当属性就好了,怎么改呢?

...全文
471 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
scscms太阳光 2019-05-09
  • 打赏
  • 举报
回复
用了vue就不要老jQuery思想。
<input class="chk" @click="fun($event,item)" name="radio1" type="radio">

methods: {
fun(e,item){
if(e.target.checked.checked){
console.log(item) //不过话说回来,这里只要是点击都是选中的,判断多余。
}
}
}
河南棒小伙 2019-05-09
  • 打赏
  • 举报
回复
引用 8 楼 zzyhost 的回复:
[quote=引用 7 楼 河南棒小伙 的回复:] [quote=引用 6 楼 zzyhost 的回复:] [quote=引用 5 楼 河南棒小伙 的回复:] 我觉得你可以给items数组每一项里面添加一个布尔值,用来绑定每一个item对应的radio,在input中用v-model绑定item.布尔值,然后点击按钮的时候,给items.filter(item=>item.布尔值===true)的就可以了,需要注意的是,给items每一项添加布尔值的时候,一定要先把布尔值加进去,然后再赋给items,否则该布尔值不是动态响应的。
items.filter(item=>item.布尔值===true) 为什么我这么写报错?不能用拉姆达表达式,要添加引用什么js 文件吗?[/quote] 不需要引用js文件啊,你这边报什么错?这个箭头函数是es6的语法呀,filter也是es5的语法吧,应该没什么问题的,有问题的话,请把报错及代码一起发上来,大家一起看看比较好一些。[/quote] computed: { mzItems: function() { return this.items.filter(function(item) { return item.NFLAG == 0; }) } } 我用的是Hbuilder,如上面这么写就不报错。return this.items.filter(item=>item.NFLAG==0),这么写就报错,报错内容:[Web浏览器] "Uncaught SyntaxError: Unexpected token >"[/quote] 这我就不知道了,可能是HBuilder不支持es6的语法么?你可以单独测试一下,随便找个地方测试一下箭头函数,不管怎么样,问题解决了就行。
zzyhost 2019-05-08
  • 打赏
  • 举报
回复
引用 7 楼 河南棒小伙 的回复:
[quote=引用 6 楼 zzyhost 的回复:]
[quote=引用 5 楼 河南棒小伙 的回复:]
我觉得你可以给items数组每一项里面添加一个布尔值,用来绑定每一个item对应的radio,在input中用v-model绑定item.布尔值,然后点击按钮的时候,给items.filter(item=>item.布尔值===true)的就可以了,需要注意的是,给items每一项添加布尔值的时候,一定要先把布尔值加进去,然后再赋给items,否则该布尔值不是动态响应的。


items.filter(item=>item.布尔值===true)
为什么我这么写报错?不能用拉姆达表达式,要添加引用什么js 文件吗?[/quote]
不需要引用js文件啊,你这边报什么错?这个箭头函数是es6的语法呀,filter也是es5的语法吧,应该没什么问题的,有问题的话,请把报错及代码一起发上来,大家一起看看比较好一些。[/quote]


computed: {
mzItems: function() {
return this.items.filter(function(item) {
return item.NFLAG == 0;
})
}
}

我用的是Hbuilder,如上面这么写就不报错。return this.items.filter(item=>item.NFLAG==0),这么写就报错,报错内容:[Web浏览器] "Uncaught SyntaxError: Unexpected token >"
河南棒小伙 2019-05-08
  • 打赏
  • 举报
回复
引用 6 楼 zzyhost 的回复:
[quote=引用 5 楼 河南棒小伙 的回复:] 我觉得你可以给items数组每一项里面添加一个布尔值,用来绑定每一个item对应的radio,在input中用v-model绑定item.布尔值,然后点击按钮的时候,给items.filter(item=>item.布尔值===true)的就可以了,需要注意的是,给items每一项添加布尔值的时候,一定要先把布尔值加进去,然后再赋给items,否则该布尔值不是动态响应的。
items.filter(item=>item.布尔值===true) 为什么我这么写报错?不能用拉姆达表达式,要添加引用什么js 文件吗?[/quote] 不需要引用js文件啊,你这边报什么错?这个箭头函数是es6的语法呀,filter也是es5的语法吧,应该没什么问题的,有问题的话,请把报错及代码一起发上来,大家一起看看比较好一些。
zzyhost 2019-05-08
  • 打赏
  • 举报
回复
引用 5 楼 河南棒小伙 的回复:
我觉得你可以给items数组每一项里面添加一个布尔值,用来绑定每一个item对应的radio,在input中用v-model绑定item.布尔值,然后点击按钮的时候,给items.filter(item=>item.布尔值===true)的就可以了,需要注意的是,给items每一项添加布尔值的时候,一定要先把布尔值加进去,然后再赋给items,否则该布尔值不是动态响应的。


items.filter(item=>item.布尔值===true)
为什么我这么写报错?不能用拉姆达表达式,要添加引用什么js 文件吗?
河南棒小伙 2019-05-06
  • 打赏
  • 举报
回复
我觉得你可以给items数组每一项里面添加一个布尔值,用来绑定每一个item对应的radio,在input中用v-model绑定item.布尔值,然后点击按钮的时候,给items.filter(item=>item.布尔值===true)的就可以了,需要注意的是,给items每一项添加布尔值的时候,一定要先把布尔值加进去,然后再赋给items,否则该布尔值不是动态响应的。
it_lin_web 2019-04-18
  • 打赏
  • 举报
回复
用自定义属性了解下 data-自定义属性名 获取 event.traget.dataset.自定义属性名
lrylongg 2019-04-17
  • 打赏
  • 举报
回复
直接写在标签里不行,不过可以试试在页面加载的时候用js写进去。
类似于这样:
window.onload=function(){
var chks=Array.from(document.getElementsByClassName("chk"));
for (var i = chks.length - 1; i >= 0; i--) {
chks[i].listname=vm.items[i].vname;
chks[i].listid=vm.items[i].id;
}
}
zzyhost 2019-04-17
  • 打赏
  • 举报
回复
引用 1 楼 讨厌走开啦 的回复:
item对象是遍历中生成的临时对象,怎么能当成属性呢?items倒是可以,直接在input上写:items = items这样不行?

items是所有的集合呀,我肯定要的是每一项item属性,你再看看
讨厌走开啦 2019-04-17
  • 打赏
  • 举报
回复
item对象是遍历中生成的临时对象,怎么能当成属性呢?items倒是可以,直接在input上写:items = items这样不行?

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧