Vue.js呈现具有范围槽的组件但返回NaN

时间:2017-04-06 05:25:53

标签: vue.js nan

我是一个新手。我尝试使用范围槽和指令来创建一个列表示例,代码如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>作用域插槽</title>
    <script src="https://unpkg.com/vue/dist/vue.js"></script>
    <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
</head>

<body>
    <div id="app">
      <app></app>
    </div>
</body>
<script>
Vue.directive("selectall",{
  bind:function(el,binding,vnode,oldVnode){
    var arg = binding.arg,
        value = binding.value;
    console.log(arg,value);
    $(el).on('change',function(){

    });
  }
});
Vue.component("list",{
  template:"<div><ul>"
    +"<slot name='item' v-for='item in litodos' :text= 'item.text' :time='item.time' :idx='item.idx'></slot>"
    +"</ul>"
    +"</div>",
  props:['litodos'],
  data:function(){
    return {
    message:"list-message"
    }
  }
});

Vue.component("app",{
  template:"<div class='container'>"
  +" <input type='checkbox'  v-selectall:parent='group1'/>select all gruop1"
  +"<list :litodos='todos1'>"
  +"<template slot='item' scope='props'>"+
  +"<li><input type='checkbox' value='{{props.idx}}'  v-selectall:child='group1'/>{{props.text}} </li>"
  +"</template>"
  +"</list>"
  +" <hr><input type='checkbox'  v-selectall:parent='group2'/>select all gruop2"
  +"<list :litodos='todos2'>"
  +"<template slot='item' scope='props'>"+
  +"<li><input type='checkbox' value='{{props.idx}}' v-selectall:child='group2'/>{{props.text}}</li>"
  +"</template>"
  +"</list>"
  +"</div>",
  data:function(){
    return {
      group1:"group1",
      group2:"group2",
      todos1:[
        {
          text:'study english',
          time:'3hour',
          idx:'1'
        },{
          text:'study vue',
          time:'2hour',
          idx:'2'
        }
      ],
      todos2:[
        {
          text:'学英语',
          time:'3hour',
          idx:'3'
        },{
          text:'学js',
          time:'2hour',
          idx:'4'
        }
      ]
    };
  }
})
var app = new Vue({
    el: '#app',
    data:{}
});
</script>
</html>

这里是必不可少的片段:

+"<list :litodos='todos1'>"
  +"<template slot='item' scope='props'>"+
  +"<li><input type='checkbox' value='{{props.idx}}'  v-selectall:child='group1'/>{{props.text}} </li>"
  +"</template>"
  +"</list>"

但结果是这样的: enter image description here

我发现插槽返回NaN,所以我很困惑。你能帮我找到解决这个bug的关键点吗?谢谢!

0 个答案:

没有答案