在一个扩展了Sonata管理twitch/Symfony 2的twitch中调用javascript(ExtJS)的问题
Issue calling javascript (ExtJS) in a twig extended a Sonata admin twig / Symfony 2
我对php技术很陌生。我面临着一些我无法真正解决的问题。
快速总结一下,我在Sonata admin Bundle生成的管理列表中添加了一个自定义列。
在本专栏中,我有一个地图图标。目前,它正在工作,图标显示出来。
当我点击图标时,我想要的是打开ExtJS生成的弹出窗口。
我已经测试过将ExtJS集成到Symfony(而不是Sonata)的小树枝中,它成功了。
但当我用我的自定义树枝尝试同样的事情时,除了扩展
base_list_field.html.twig
我在调试工具中遇到错误,当然弹出窗口不会显示。这是我的小代码:
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field%}
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
{% javascripts '@AAAAdminBundle/Resources/public/js/ExtJS4.2/ext-all.js' %}
<script src="{{ asset_url }}"></script>
<script>
Ext.Loader.setPath('Ext', '/bundles/aaaadmin/js/ExtJS4.2/src');
</script>
{% endjavascripts %}
{% stylesheets 'bundles/aaaadmin/js/ExtJS4.2/resources/css/ext-all-neptune.css' filter='cssrewrite' %}
<link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}
{% javascripts '@AAAAdminBundle/Resources/public/js/popup.js' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
<div>
<img src="{{ asset('bundles/aaaadmin/images/map_magnify.png') }}" alt="exemple onclick" style="cursor:pointer;" id="popup-map" />
</div>
{% endblock %}
这是我的JS代码:
Ext.require([
'Ext.container.Viewport',
'Ext.state.Manager',
'Ext.state.CookieProvider',
'Ext.window.MessageBox',
'Ext.chart.*',
'Ext.fx.target.Sprite',
'Ext.layout.container.Fit',
'Ext.window.MessageBox',
]);
Ext.application({
name: 'popup',
launch: function() {
var popup,
button = Ext.get('popup-map');
button.on('click', function(){
if (!popup) {
popup = Ext.create('widget.window', {
title: 'Pop-Up',
id: 'popup',
header: {
titlePosition: 2,
titleAlign: 'center'
},
border: false,
closable: true,
closeAction: 'hide',
width: 800,
minWidth: 400,
maxWidth: 1200,
height: 500,
minHeight: 550,
maxHeight: 800,
tools: [{type: 'help'}],
layout: {
type: 'border',
padding: 10
},
items: [
{
region: 'center',
xtype: 'tabpanel',
plain: true,
items: [
{
title: 'Carte',
html: 'On mettra la carte ici',
border: false,
},
{
title: 'Description',
html: 'Attributs de l''objet sous forme de tableau',
border: false,
}
]
}
]
});
}
button.dom.disabled = true;
if (popup.isVisible()) {
popup.hide(this, function() {
button.dom.disabled = false;
});
} else {
popup.show(this, function() {
button.dom.disabled = false;
});
}
});
}
});
button = Ext.get('popup-map');
在我做的一个测试中引用了HTML对象。但我有很多错误,比如
Object prototype may only be an Object or null //5 times this error when loading the page
Object [object Object] has no method 'addCls'
Object [object Object] has no method 'hasCls' // when I click somewhere on the page
我有点迷路了。如有任何提示,我们将不胜感激。
展望未来,问题不是来自我的JS代码,而是因为如果我在一个网格中显示了几个实体,那么ext-all-debug.JS的加载时间与实体的加载时间相同。然后它似乎产生了错误。
我想我可以把库移到索纳塔的主模板上。我试过了,有一些错误,但它的工作效率更高。
但是,我想这不是正确的解决方案,因为我不想接触奏鸣曲模板。
如果我找到解决方案,我会不断更新。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- 从javascript创建一个列表
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Javascript:selenium Web驱动程序isDisplayed()不工作
- 在一个扩展了Sonata管理twitch/Symfony 2的twitch中调用javascript(ExtJS)的问题
- 在twitch tv javascript中显示离线用户
- 如何获取除通过JavaScript添加的文本之外的文本框(Twitch电视聊天)
- Twitch API搜索流通过Javascript AJAX -获得所有流
- Javascript, Twitch API调用,重复图像/空返回