مشکل دریافت لیست assets ها برای spf.js

[right][size="2"][font="Tahoma"][rtl][/font][/size][/right]

[right][size="2"][font="Tahoma"]سلام به دوستان عزیز من در یک پروژه با یی ۲ به مشکل خوردم که نیاز دارم لیست assetsها [/font][/size][font="Tahoma"][size="2"]رو دریافت کنم و به صورت اجکس درون یک آرایه بفرستم برای این کار من یک view layout جدید ایجاد کردم به صورت زیر:[/size][/font][/right][right][font="Tahoma"][/rtl][/font][/right][left][right][left]




use yii\helpers\Html;

use \yii\helpers\Json;

use app\assets\AppAsset;


AppAsset::register($this);


$spf_data = [

    'title' => Html::encode($this->title),

    'head' => [$this->beginPage() . Html::csrfMetaTags() . $this->head()],

    'body' => ['content' => $this->beginBody() . $content],

    "attr" => [

        'content' => [

            "class" => "container"

        ]

    ],

    'foot' => $this->endBody() . $this->endPage(),

];

echo Json::htmlEncode($spf_data);

[/left][/right][/left][right][size="2"][rtl]حالا مشکل اینجاس که چجوری باید لیست assets ها رو بگیرم و تو بخش head اضافه کنم.[/rtl][/size][/right][right][rtl]این آرایه هم برای spf.js استفاده میشه اگر روش دیگه ای برای استفاده در spf.js هم معرفی کنید که کارمو راه بندازه ممنون میشم[/rtl]

[/right][right][rtl]برای اطلاع بیشتر راجع به spf.js اینجا کلیک کنید[/rtl]

[/right]

[size="4"]

[right]با این نمیتونی لیستشون را بگیری؟[/right]

yii\web\view::assetBundles()

[right]یعنی مثلا در این ویو که هستی با[/right]


$this->assetbundles();

[right]

میتونی لیستشون را بگیری.

یا من اشتباه متوجه مشکل شدم؟[/right][/size]

[right][size="2"] ارور میده با این کد که شما گفتید[/size][/right][left]




Calling unknown method: yii\web\View::assetBundles()



[/left]

[right]من اشتباها بصورت متد نوشتم ولی صفت هست. درستش تو اون داکیومنت که معرفی کردم بود ولی.

پس درستش میشه این[/right]


$this->assetBundles;

[right]این صفت مقدار رو در صورتی میده که اپ استس رجیستر بشه و وقتی هم که اپ استس رو رجیستر میکنم به طور پیش فرض تگ های اسکریپت و لینک رو درون صفحه میزاره که خب من چون صفحه رو طوری نوشتم که به صورت یک پاسخ جیسون نمایش داده بشه پاسخ رو خراب میکنه، مورد بعد هم این که این آرایه مقادیر استس رو به صورت اطلاعات نمایش میده که باز تبدیل کردنش خودش مشکلیه[/right][right]

[/right][right]در یک کلام من میخام به جای این که متد رجیستر تگ ها رو تو صفحه قرار بده به صورت رشته برگردونه که هرجا خواستم استفاده کنم[/right]

[size="4"][right]

اگر از

renderPartial()

به

جای

render()

استفاده کنی مشکلت حل نمیشه؟

تبدیل کردن اطلاعاتی که

$this->assetBundles

بر میگردونه به چیزی که میخوای قبول دارم یکم طول میکشه ولی فکر کنم راه دیگه ای نباشه[/right][/size]

[right][size="2"][rtl]متاسفانه با renderPartial() هم نمیشه چون اسکریپت های صفحه رو لود نمیکنه و من میخام استس هایی که تو صفحه لود میشه رو به صورت اجکس دریافت و لود کنم[/rtl][/size][/right][right][rtl][size="2"]از[/size][size="2"]


$this->assetBundles

[/size][size="2"]نمیتونم استفاده کنم چون برای پر شدنش باید از متد register استفاده کرد که این متدم خودش واسه خودش اسکریپتا رو تو صفحه اضافه میکنه که باعث میشه پاسخه جیسونم بهم بریزه ،‌اگر بشه همین کدی رو که به صفحه اضافه میکنه اتوماتیک تو یک متغییر به عنوان رشته ذخیره کرد بدون این که به صفحه اضافه بشه مشکلم حل میشه[/size][size="2"] [/rtl][/size][/right]