私は、フィールドを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ファイルが更新されていないことです。
アイデア?