Nette Frameworkのコンポーネントスニペットにアクセスしたいです -- ajax フィールド と nette フィールド 関連 問題

I want access the component snippet in nette framework












0
vote

問題

日本語

のようなテンプレートコードを使用しています <事前> <コード> module List = let divideAt predicate list = let rec divideAt' acc = function | [] -> (List.rev acc, []) | h::_ as ls when predicate h -> (List.rev acc, ls) | h::t -> divideAt' (h::acc) t divideAt' [] list 9

および<コード> let divideAt predicate list = match List.tryFindIndex predicate list with | None -> (list, []) | Some(index) -> (List.take index list, List.skip index list) 0 コンポーネントコードのようなもの:

<事前> <コード> let divideAt predicate list = match List.tryFindIndex predicate list with | None -> (list, []) | Some(index) -> (List.take index list, List.skip index list) 1

メソッドPrementer MethodでAjaxを使用しています:

<事前> <コード> let divideAt predicate list = match List.tryFindIndex predicate list with | None -> (list, []) | Some(index) -> (List.take index list, List.skip index list) 2

しかし、スニペットスニペットIDは let divideAt predicate list = match List.tryFindIndex predicate list with | None -> (list, []) | Some(index) -> (List.take index list, List.skip index list) 3 の再描画ではありません。修正するのを手伝ってください。

英語

I have using the template code like:

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

and in addFormControl component code is like:

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

I am using ajax with method presenter method:

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

But it is not redraw the snippet snippet id is snippet-addFormControl-clientSnippet. Please help me to fix it.

</div
     

回答リスト

0
 
vote

私はあなたが$ this&gtを呼び出すことができるとは思わない.redrawcontrol( 'clientsnippet');発表者で、コンポーネントを再描画する予定です。これをコンポーネントに呼び出す必要があります。

$ this ['addformcontrol'] - &gt; redrawcontrol( 'clientsnippet');

 

I dont think you can call $this->redrawControl('clientSnippet'); in presenter and expect to redraw component. You should call this in the component.

Something like $this['addFormControl']->redrawControl('clientSnippet');

</div
 
 
0
 
vote

これはどのようにそれをすることができるかです。 私の最新のプロジェクトでは、私はかなりのものをやっていました、それはかなり単純なものです。 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()}); });

これはそれであるべきです。私はあなたがこの便利なものを見つけることを願っています

 

this is how you can do it. In my latest project i was doing something quite similiar, it's pretty simple tho. For Nette I use this Ajax: https://github.com/vojtech-dobes/nette.ajax.js

.latte file:

<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} 

Notice the '!' at the end of the text input. It's tells Nette to look after the handle function.

The presenter:

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);     } } 

And 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()}); }); 

This should be it. I hope you find this useful

</div
 
 

関連する質問

0  Nette Frameworkのコンポーネントスニペットにアクセスしたいです  ( I want access the component snippet in nette framework ) 
:のようなテンプレートコードを使用しています <事前> <コード> module List = let divideAt predicate list = let rec divideAt' acc = function ...

-3  LaravelのAjaxでHTMLコンテンツを再描画する方法 - Nette Snippets  ( How to redraw html content via ajax in laravel nette snippets ) 
Laravelのための控えめなAjaxソリューションを探しています。 Nette Frameworkはこれを行うために独自のAjaxワークフローを実装しました。 しかしLaravelはこのようなものを提供していません... 編集: もちろん、私はjQue...

0  複数のEメールを送信する方法  ( How to send multiple emails ) 
Nette Mailerによって選択されたユーザーに電子メールを送信しようとしていますが、 InvalidStateException 。 <事前> <コード> public function contactsEditorFormSucceeded($for...

3  PhpStormでLatteテンプレートをデバッグする方法  ( How to debug latte templates on phpstorm ) 
は、普通のPHPをデバッグするのと同じ方法でPhpstormでラテテンプレートをデバッグすることは可能ですか? Documentation コードステップを持つIDEを使用している場合は、生成されたテンプレートのPHPコードを実行できます。 Ph...

0  注文を追加した後の教義のショッピングカート:未定義のインデックス  ( Doctrine shopping cart after add order undefined index ) 
私はDoctrineとNetteフレームワークでショッピングカートをプログラムします。 test-macro-1.js:6 メソッドがあります。(セッションカートに追加) <事前> <コード> test-macro-1.js:7 とDB に注文を追加する方...

1  無効なリンク:プレゼンター 'POST'をロードできません、クラス 'App Presenters PostPresenter'が見つかりませんでした  ( Invalid link cannot load presenter post class app presenters postpresenter ) 
私は マイファイルはこのように見えますこの あらゆる助けが大いに感謝されます。ありがとう ...

0  PHP 7.4.6への更新後のNetteの問題  ( Problem with nette after update to php 7 4 6 ) 
PHPをバージョン 7.3 にアップグレードした後、 7.4.6 。 Netteで持っているものすべてがこのメッセージを投げ出します。 <コード> Trying to access array offset on value of type bool PH...

0  Nette WebのGoogleマップ  ( Google maps in nette web ) 
私はGoogleマップを私のNetteのウェブサイトに置かせようとしていますこの 地図を表示しませんが、次のようにします。 (ソースコード) <事前> <コード> <section> <div class="googleMapAPI" data-map="{...

0  PHP変数をMySQL Trigger #netteに渡します  ( Pass php variable to mysql trigger nette ) 
データベースにトリガーが作成されました。 PHP変数をそのトリガーに渡す必要があります。 私はphpmyadminでこのようなものを実行しようとしました: <事前> <コード> SET @myVariable = 123; INSERT INTO table ...

0  PHP(Nette) - >オブジェクト値によるオブジェクトのグループ配列  ( Php nette group array of object by object value ) 
Netteを使用しています。データベースからデータ(オブジェクト)を取得します。 例えば: <事前> <コード> array{ [0]=> object{ ["CestyNazev"]=> "K00301" ["datum"]=> "2018-03-...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有