3

fetch extension attributesどんな延長でも大切にしたいyii.

以下の例:

$this->widget('xupload.XUpload', array(
            'url' => Yii::app()->createUrl("site/upload", array("parent_id" => 1)),
            'model' => $model,
            'attribute' => 'file',
            'multiple' => true,
            'options' => array('submit' => 'js:function (){

            }')
        ));  

オプションのサブミット機能で上記拡張子の想定URLを取得したいのですがどうすればいいですか?

4

1 に答える 1

2

拡張機能の初期化中は、URL や拡張機能のその他の属性にアクセスすることはできません。ただし、ウィジェットが初期化された、属性にアクセスできます。

ウィジェットを呼び出すと$this->widget('extension', array( ... ));初期化されるため、配列に渡されたオプションを別のオプション内ですぐに使用することはできません。あなたの場合、プロパティ内のプロパティにアクセスしようとしています。urloptions

プロパティを使用するには、次のことを行う必要があります。

  1. 次のように、初期化後にウィジェットへの参照を保存します。

    $xwidget = $this->widget('extension', array( ... ));
    
  2. 次に、プロパティを使用/アクセスします。

    $xwidget->propertyname;
    

プロパティをjs関数に渡す正確なシナリオでは、さらに次のことを行う必要があります。

  1. submitオプションに無名関数を渡す代わりに、関数参照を渡します。

    'options' => array('submit' => 'submitHandler')
    
  2. 次に、スクリプトを登録するか、registerScript直接 html<script>タグを使用して、ウィジェットのプロパティにアクセスします。

    Yii::app()->clientScript->registerScript('script-id','
        function submitHandler() {
            var url = "'. $xwidget->url .'"; // this is how we can insert the property into js
            // ... more code ...
        }',
        CClientScript::POS_END// the position of the script
    );
    
于 2013-03-15T08:58:33.717 に答える