Jquery 如何获取扩展的属性

Jquery 如何获取扩展的属性,jquery,yii,yii-extensions,Jquery,Yii,Yii Extensions,我想获取yii的任何扩展中的扩展属性值。 举例如下: $this->widget('xupload.XUpload', array( 'url' => Yii::app()->createUrl("site/upload", array("parent_id" => 1)), 'model' => $model, 'attribute' => 'file', 'mu

我想
获取
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 (){

            }')
        ));  

我想在options的submit函数中获取上述扩展的URL,但如何?

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

当您调用
$this->widget('extension',array(…)
the,因此数组中传递的选项不能立即在另一个选项中使用。在您的情况下,您正试图访问属性
选项中的属性
url

要使用该物业,我们必须:

  • 在小部件初始化后存储对小部件的引用,如:

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

    $xwidget->propertyname;
    
  • 对于要将属性传递给js函数的确切场景,您还必须执行以下操作:

  • 不要将匿名函数传递给
    submit
    选项,而是传递函数引用:

    'options' => array('submit' => 'submitHandler')
    
  • 然后使用
    registerScript
    注册脚本或使用direct html
    标记,并访问其中的小部件属性:

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

  • 例如,您希望将类似
    ${url}
    的内容放入
    js:function…
    字符串中?并通过Yii将其转换为实际的url值?@PeterM-未正确获取。。生成错误…你能给我正确的语法来获取值吗?你应该用所需的值创建一个js var,或者从小部件生成的html代码(show us)中获取值。@harsh4u这不是语法,我只是用它来澄清问题,我的评论中显示的语法不起作用。harsh4u,我做了一些编辑来更好地解释解决方案,一定要去看看。