我有自己内部使用的vue组件 - 数据可以有子元素的数组,我使用这个数组来循环渲染它们,下一级,下一级等等根据嵌套级别.
现在我想从父运行子方法然后 - 如果语句没问题,也可以调用它给孩子,下一级等.
我用
<mycomponent
ref="myFirstLevelRefName"
(...)
></mycomponent>
Run Code Online (Sandbox Code Playgroud)
然后:
this.$refs.myFirstLevelRefName
Run Code Online (Sandbox Code Playgroud)
打电话给第一级孩子.但是关于子节点呢?我以这种方式在视图中使用它们:
<mycomponent
v-for="(subElement, index) in getSubelements()"
ref="???"
v-bind:data="subElement"
v-bind:key="index"
></mycomponent>
Run Code Online (Sandbox Code Playgroud)
我尝试发送这个.$ refs从子级别到控制台,但它是空的.
我应该如何在嵌套元素中设置引用名称,然后从父级调用它们?
可以在不使用"$ this"的情况下访问此类方法中的类属性,就像在C++中一样?
小例子:
class MyClass
{
protected $foo = 'abc';
protected $bar = 'dca';
public function __construct()
{
$foo = 'Hello';
$bar = 'World!';
}
public function display()
{
echo $foo . ' ' . $bar;
}
}
$MyObject = new MyClass();
$MyObject->display();
Run Code Online (Sandbox Code Playgroud)
结果,我注意到未定义的变量.但我想确定 - 是否有可能?
我有类似的问题: VueJs 2.0 - 如何侦听 `props` 更改,但在我的情况下,我将对象从父级发送到子级,也传递了几次以使用 JS 中对象引用的好处。
有一个例子,但工作正常:
<div id="app">
<child :myprop="myObj"></child>
<button @click="text = 'Another text'">Change text</button>
</div>
<script>
new Vue({
el: '#app',
data: {
myObj: {
id: null
}
},
components: {
'child' : {
template: `<div>
<p>{{ myprop.id }}</p>
<select v-model="myprop.id">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</div>`,
props: ['myprop'],
watch: {
'myprop.id': function(newVal, oldVal) { // watch it
console.log('Prop changed: ', newVal, ' | was: ', oldVal)
}
}
}
}
}); …Run Code Online (Sandbox Code Playgroud)