【问题标题】:I want access the component snippet in nette framework我想访问 nette 框架中的组件片段
【发布时间】:2018-03-30 09:41:12
【问题描述】:

我使用的模板代码如下:

{snippetArea wrapper}
    {control addFormControl}
{/snippetArea}

而在addFormControl 组件代码是这样的:

{snippet clientSnippet}
...... 
{/snippet}

我正在使用带有方法演示器方法的 ajax:

public function handleClientChange(){
        $this['addFormControl']['addForm']['consignment_client']->setValue("test");

        $this->redrawControl('wrapper');
        $this->redrawControl('clientSnippet');
    }

但不是重绘sn-p sn-p id是snippet-addFormControl-clientSnippet。请帮我解决它。

【问题讨论】:

    标签: ajax nette


    【解决方案1】:

    我认为你不能调用 $this->redrawControl('clientSnippet');在演示者中并期望重绘组件。您应该在组件中调用它。

    类似 $this['addFormControl']->redrawControl('clientSnippet');

    【讨论】:

      【解决方案2】:

      这就是你可以做到的。 在我最新的项目中,我正在做一些非常相似的事情,这很简单。 对于 Nette,我使用这个 Ajax:https://github.com/vojtech-dobes/nette.ajax.js

      .latte 文件:

      <input type="text" id="search-car" data-url="{plink refreshCars!}">
      
      {snippet carlist}
      {foreach $cars as $car}
         {var $photo = $car->related('image')->fetch()}
         {if $photo}
           <img src="{plink Image:image $photo->filename}"/>
         {/if}
       </a>
      {/foreach}
      {/snippet}
      

      注意“!”在文本输入的末尾。它告诉 Nette 去处理句柄函数。

      主持人:

      public function handleRefreshCars()
      {
          $this->redrawControl('carlist');
      }
      
      public function renderDefault($foo = null)
      {
          if ($foo === null || $foo === '') {
              $this->template->cars = array();
          } else {
              $this->template->cars = $this->carDao->getFiltered($foo);
          }
      }
      

      还有 JS:

      function callFilterAjax(url, data) {
              $.nette.ajax({
              url: url,
              data: data
           });
       }
      
      $("#search-contract-car").on('load focus focusout change paste keyup', function () {
          callFilterAjax($(this).data('url'), {"foo": $(this).val()});
      });
      

      应该是这样的。我希望你觉得这很有用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-08
        • 1970-01-01
        • 1970-01-01
        • 2018-10-23
        • 1970-01-01
        • 2020-10-20
        • 1970-01-01
        • 2017-01-11
        相关资源
        最近更新 更多