Bạn có thể sử dụng tính năng phụ thuộc trong Yii script packages. Tôi đã có similar problem before.
Ví dụ, bạn có các gói kịch bản cấu hình như dưới đây,
'clientScript' => array(
'packages' => array(
'package1' => array(
'basePath' => 'path.to.package1',
'js' => array(
'package1.js',
),
'css' => array(
'package1.css'
),
),
'package2' => array(
'basePath' => 'path.to.package2',
'js' => array(
'package2.js',
),
'css' => array(
'package2.css'
),
'depends' => array(
'package1',
)
),
'package3' => array(
'basePath' => 'path.to.package3',
'js' => array(
'package3.js',
),
'css' => array(
'package3.css'
),
'depends' => array(
'package2',
)
),
)
)
Trong ví dụ trên, package2
yêu cầu (phụ thuộc) package1
và package3
đòi hỏi package2
. Giả sử trong trường hợp của bạn, tiện ích con sử dụng package2
và tập lệnh khác sử dụng package3
. Ngay cả khi bạn không hiển thị tiện ích, nếu bạn sử dụng Yii::app()->clientScript->registerPackage('package3');
, nó sẽ tự động cài đặt package2
, sau đó cài đặt package1
trước package2
(hoặc sẽ không cài đặt nếu trước đó một số tập lệnh trước đây đã yêu cầu package1
.).
Nguồn
2012-06-21 02:49:32
Bạn có thể chỉ định vị trí. Xem tài liệu cho [registerScript] (http://www.yiiframework.com/doc/api/1.1/CClientScript/#registerScript-detail) và/hoặc [registerScriptFile] (http://www.yiiframework.com/doc/ api/1.1/CClientScript/# registerScriptFile-detail) – adamors
Cảm ơn những suy nghĩ nhưng tôi đã nhận thức được điều này. Bạn có thể chỉ định một trong ba địa điểm - POS_BEGIN, POS_END và POS_READY - điều đó không giúp ích gì nếu tôi cần tất cả các plugin của mình được nạp trong POS_BEGIN, nhưng một số plugin đến từ bố cục chính và một số từ tiện ích con. – Hippyjim
Tôi hiểu, bạn đã thử duyệt nguồn của các tiện ích zii chưa? – adamors