[英]How to overwrite Admin.js in Sonata Admin?
如何在Sonata Admin中覆蓋文件Admin.js? 我嘗試在以下位置創建此文件:
/app/Resources/SonataAdminBundle/public/Admin.js
但這不起作用。
在standard_layout.html.twig中,此文件包含在:
{% block sonata_javascript_pool %}
{% for javascript in sonata_admin.adminPool.getOption('javascripts', []) %}
<script src="{{ asset(javascript) }}"></script>
{% endfor %}
{% endblock %}
您可以調整javascripts選項:
app/console -vvv config:dump-reference sonata_admin
sonata_admin:
…
assets:
…
javascripts:
# Defaults:
- bundles/sonatacore/vendor/jquery/dist/jquery.min.js
- bundles/sonataadmin/vendor/jquery.scrollTo/jquery.scrollTo.min.js
- bundles/sonatacore/vendor/moment/min/moment.min.js
- bundles/sonataadmin/vendor/jqueryui/ui/minified/jquery-ui.min.js
- bundles/sonataadmin/vendor/jqueryui/ui/minified/i18n/jquery-ui-i18n.min.js
- bundles/sonatacore/vendor/bootstrap/dist/js/bootstrap.min.js
- bundles/sonatacore/vendor/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js
- bundles/sonataadmin/vendor/jquery-form/jquery.form.js
- bundles/sonataadmin/jquery/jquery.confirmExit.js
- bundles/sonataadmin/vendor/x-editable/dist/bootstrap3-editable/js/bootstrap-editable.min.js
- bundles/sonatacore/vendor/select2/select2.min.js
- bundles/sonataadmin/vendor/admin-lte/dist/js/app.min.js
- bundles/sonataadmin/vendor/iCheck/icheck.min.js
- bundles/sonataadmin/vendor/slimScroll/jquery.slimscroll.min.js
- bundles/sonataadmin/vendor/waypoints/lib/jquery.waypoints.min.js
- bundles/sonataadmin/vendor/waypoints/lib/shortcuts/sticky.min.js
- bundles/sonataadmin/vendor/readmore-js/readmore.min.js
- bundles/sonataadmin/Admin.js
- bundles/sonataadmin/treeview.js
我認為如果您在DOM的底部創建一個新的javascript文件,則它是一個更好的解決方案。 之后,您可以覆蓋受影響的Admin.js方法,如下面的代碼。
您可以執行此操作,因為Admin對象位於全局窗口對象中。 :)
例如:您想修改setup_list_modal方法。
// assets/js/admin.js
window.Admin.setup_list_modal = function (modal) {
// Your code...
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.