从组件中获取变量

Take variable from component

我想从组件中获取变量。 这是我的代码:

<!-- Gallery -->
<div class="galeryWraper">
<div class="row" >
   <h3>{{ galeria1.post.title }} {{ galeria1.post.description }}</h3>
        <div class="col-sm-8">

            {% component 'galeria1' %}

        </div>
      </div>
 </div>

 <!-- End Gallery -->

Galery 工作正常。 但是画廊标题和描述没有显示。

有人知道为什么吗?

post 必须在该组件中定义

public $post = null;

现在 onRun 或者你需要如何给它赋值

public function onRun() {
    $this->post = 'value-text';
}

那么只有它像

一样可用
{{ galeria1.post }} 
// output 'value-text' 

所以可能是你的post变量直接传递给页面没有分配给组件

例如:

public function onRender()
{
    $this->page['post'] = 'some data';
}

public function onRun()
{
    $this->page['post'] = 'some data';
}

所以这个 post 直接分配给页面而不是组件本身。

解决方法:

你可以这样做

public $post= '';
public function onRender OR onRun() // choose method where data is added to page
{
    $this->post = 'some data';
    $this->page['post'] = $this->post;
}

你可以像这样直接访问那些变量

{{ post.title }} {{ post.description }}

如果它们在您的组件上设置如下

public function onRun(){
    $post = array();
    $post['title'] = 'some-title';
    $post['description'] = 'some-description';
    $this->page['post'] = $post;
}

要从组件的 Twig 部分访问 属性,请使用引用组件对象的 __SELF__ 变量:

{{ __SELF__.property('title') }}