2016-07-18 5 views
1

私は、フィールドをdjamamally形式でPjaxを使って追加するウィジェットを書いています。Yii2 PjaxとAssetBundle

$('#w1').yiiActiveForm('add', attributeRules); 

を、私のウィジェット資産/ JSの内側に配置されたファイルに保存する:私は、フォームの属性からルールを取得し、使用してそれらを割り当てることによって、その場でルールを構築し、YiiActiveForm JSで検証ルールを追加するため/rules.js、私のrunメソッドに:

public function run() { 

     Pjax::begin($this->pjaxOptions); 

     $fields = $this->_listFields(); 

     $this->_setFormRules(); 

     $view = $this->getView(); 
     FofAsset::register($view); 

     echo $fields; 

     Pjax::end(); 

    } 

問題は、それが常に2番目のフィールドを追加する際に、ルールのみが含まれていrules.js(最初のフィールドのために)rules.jsの最初のバージョンを示すことです最初のフィールド(ページに追加されたフィールド)。 widget/assets/jsのファイルには両方のフィールドのルールがあります。私はすでに私のAssetBundleにforceCopyとappendTimestampを使用しています。

問題は、Pjaxを呼び出した後にrules.jsファイルが更新されていないことです。

アイデア?

答えて

1

私は答えを見つけました。

Pjaxは私の変更が機能しなかった理由です、何度も同じリソースの詳細をロードするために構築されていない:)

毎日私たちは、何か新しいことを学びます。

registerJsでインラインjsを使用して解決します

関連する問題