如何获取扩展的属性

时间:2013-03-15 06:37:29

标签: jquery yii yii-extensions

我想在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,但是如何?

1 个答案:

答案 0 :(得分:2)

初始化扩展程序 时,无法访问网址或扩展程序的任何其他属性 。但是我们可以在小部件初始化之后访问属性。

当您致电$this->widget('extension', array( ... )); widget is being initialized时,数组中传递的选项无法立即在其他选项中使用。在您的情况下,您尝试访问属性url中的属性options

要使用我们必须拥有的财产:

  1. 在窗口小部件初始化后存储对窗口小部件的引用,如:

    $xwidget = $this->widget('extension', array( ... ));
    
  2. 然后使用/访问属性:

    $xwidget->propertyname;
    
  3. 对于您想要将属性传递给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
      );