首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在v-for ( <slot> in v-for (vue.js) )中访问项

如何在v-for ( <slot> in v-for (vue.js) )中访问项
EN

Stack Overflow用户
提问于 2016-05-16 07:01:59
回答 1查看 4.2K关注 0票数 4

如何将物品从发送到插槽?在vue.js中。

ListComponent:

代码语言:javascript
复制
<ul>
  <li v-for="item in list">
    <slot></slot>
  </li>
</ul>

页面查看:

代码语言:javascript
复制
<list-component :list="list">
  <span v-text="item.value"></span>    
</list-component>

代码<span v-text="item.value"></span>无法访问item (从组件的作用域)。这是一种将item从组件发送到标记中的代码的方法吗?

P.S. --我知道,作为一种解决办法,我可以将$index从组件发送到父视图,但这有点麻烦

UPD:我当前解决方法的示例(有人可能会发现这很有用):

在视图的数据中声明index

代码语言:javascript
复制
data () {
  return {
    index: 0,
    list: [ ... ]
}

index参数添加到视图的模板中:

代码语言:javascript
复制
<list-component :list="list" :index="index">
  <span v-text="list[index].value"></span>    
</list-component>

在组件的支持中声明index

代码语言:javascript
复制
props: {
  index: {
    type: Number
  }
}

v-for的元素添加索引:

代码语言:javascript
复制
<ul>
  <li v-for="item in list" index="$index">
    <slot></slot>
  </li>
</ul>
EN

回答 1

Stack Overflow用户

发布于 2016-05-16 09:32:06

绑定表达式是在定义它们的上下文中编译的,因此:

代码语言:javascript
复制
v-text="item.value"

无法编译,因为在页面视图中没有定义“项”。

也许您可以尝试更改代码结构,如下所示:

ListComponent:

代码语言:javascript
复制
//content in component
<span>i am text in component,item value is:{{item.value}}</span>
<slot></slot>

页面查看:

代码语言:javascript
复制
<ul>
  <li v-for="item in list">
      <list-component :item="item"></list-component>
  </li>
</ul>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37248411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档