我通过使用LeftAndMain
的装饰器在CMS区域中使用JS脚本进行用户界面。
class LeftAndMainTweaks extends LeftAndMainExtension {
public function init() {
parent::init();
// My JS script
Requirements::javascript('mymodule/js/myscript.js');
}
}
脚本仅加载一次,而不是每次加载AJAX(如浏览页面或模型管理员),这会打破一些JS功能。
如何在每次调用AJAX后强制重新加载外部JS脚本?
答案 0 :(得分:1)
您不必强制重新加载脚本。请改用缠绕钩。
常见的模式是使用onmatch
和onunmatch
,例如
$('.my-selector').entwine({
onmatch: function () {
// don't forget to call this._super();
this._super();
// Do your stuff to initialize your component
},
onunmatch: function () {
this._super();
// clean up your component, unbind event listeners etc.
}
});
如果视图创建的节点包含.my-selector
类,则会调用onmatch
,您可以在那里初始化组件。
由于您没有详细说明您想要实现的目标,因此很难提供更好的指导。我认为这也是一个很好的阅读,如果你是新手缠绕:https://www.bigfork.co.uk/takeaway/a-beginners-introduction-to-using-entwine-in-silverstripe