Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js VueJS-作用域插槽和数据操作_Vue.js_Vuejs2 - Fatal编程技术网

Vue.js VueJS-作用域插槽和数据操作

Vue.js VueJS-作用域插槽和数据操作,vue.js,vuejs2,Vue.js,Vuejs2,我有一个vuejs组件编辑表单,内部有一个命名的插槽主体,数据名为模型 标记已更新。修改标题输入字段对没有影响 看 如何使标题输入字段工作?您应该在这段代码中做一些更改!比如说 Html代码: 标题: Vuejs代码: Vue.component('edit-form'{ 模板:` {{value}} 名称: `, 道具:{ 价值:{ 要求:错误, 类型:对象 } }, 数据:函数(){ 返回{ }; } }); 新Vue({ el:'集装箱', 数据:{ 值:“”, 型号:{ 名称:“x

我有一个vuejs组件
编辑表单
,内部有一个命名的插槽
主体
,数据名为
模型


标记已更新。修改
标题
输入字段对
没有影响


如何使
标题
输入字段工作?

您应该在这段代码中做一些更改!比如说

Html代码:


标题:
Vuejs代码:

Vue.component('edit-form'{
模板:`
{{value}}
名称:
`, 道具:{ 价值:{ 要求:错误, 类型:对象 } }, 数据:函数(){ 返回{ }; } }); 新Vue({ el:'集装箱', 数据:{ 值:“”, 型号:{ 名称:“x”, 标题:“y” } }, });
您应该在此代码中进行一些更改!比如说

Html代码:


标题:
Vuejs代码:

Vue.component('edit-form'{
模板:`
{{value}}
名称:
`, 道具:{ 价值:{ 要求:错误, 类型:对象 } }, 数据:函数(){ 返回{ }; } }); 新Vue({ el:'集装箱', 数据:{ 值:“”, 型号:{ 名称:“x”, 标题:“y” } }, });
谢谢,但这不是我想要的。模型数据位于
编辑表单
组件中,而不是父组件中。顺便说一句,
slot=“body”
是不推荐使用的表单。您应该使用
v-slot:body
。看,实际上我找不到更好的解决方案,所以我必须按照你的建议去做。你需要更好地阅读和理解哲学。谢谢,但这不是我想要实现的。模型数据位于
编辑表单
组件中,而不是父组件中。顺便说一句,
slot=“body”
是不推荐使用的表单。您应该使用
v-slot:body
。请看,实际上我找不到更好的解决方案,因此我必须按照您的建议进行操作。您需要更好地阅读并理解的原理。似乎Vue仅在作为插槽道具绑定到组件时传递被动对象的副本(普通对象)。因此,在本例中,我同意Sherzodbek的观点,您可能需要将它们作为组件
props
传递。似乎Vue仅在作为插槽道具绑定到组件时传递被动对象的副本(普通对象)。所以在本例中,我同意Sherzodbek的观点,您可能需要将它们作为组件
props
传递。
<html>
<head></head>
<body>

<div id="container">
  <edit-form v-model="model">
    <template slot="body">
      Title: <input v-model="model.title">
    </template>
  </edit-form>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

</body>
</html>
Vue.component('edit-form', {
      template : `<div>
              <pre>{{ value }}</pre>
              Name: <input v-model="value.name"><br>
              <slot name="body"></slot>
            </div>`,
     props:{
       value: {
         reqired: false,
         type: Object
       }
     },
    data: function() {
      return {

      };
    }
  });

  new Vue({
    el: '#container',
    data: {
      value: '',
      model: {
          name: "x",
          title: "y"
        }
    },
  });