我有一个带有仪表板单页的包。在这个单一页面上,我需要一个动态创建的对话框弹出窗口,等等
我还需要使用路由器,视图(package/mypackage/views
)和控制器。
现在的问题如下:
Router::register('what_path_?', 'Namespace\?\Class::method')
创建到视图/控制器的路径?Url::to(?)
)内调用路径并与JS对话框结合使用?如果某些问题仍未解决,请添加评论!
答案 0 :(得分:1)
添加另一个“内联代码”可能性:
<强> HTML:强>
<div id="my_dialog" style="display: none">
<div>
This is an example!
</div>
</div>
<强> jQuery的:强>
$('#my_dialog').dialog({
title: 'My Title',
width: 500,
height: 300,
modal: true,
buttons: [
{
text: 'Yes',
icons: {
primary: "ui-icon-confirm"
},
click: function () {
// Confirmed code
}
},
{
text: 'No',
icons: {
primary: "ui-icon-cancel"
},
click: function () {
$(this).dialog('close');
}
}
]
});
答案 1 :(得分:0)
要在软件包中的仪表板单页上创建模式对话框,需要执行以下步骤(假设软件包已存在):
创建以下补充文件/文件夹(为了便于阅读):
from pymatbridge import Matlab as aMATLAB # get ready
''' #
mlab = aMATLAB() # a class instance ( empty )
'''
mlab = aMATLAB( matlab = '...aMatlabCODE' ) # a class instance ( initialised )
mlab.start() # True once connected.
#
# start playing sound here
# ... and make MATLAB-beyond-the-bridge process it
# ...
# ....>>> |||||||||||||
# vvvvvvvvvvvvv
results = mlab.run_code('a=1;') # process code / vars
'my_dialog'控制器应如下所示:
/my_package/controllers/dialog/my_dialog.php
/my_package/views/dialogs/my_dialog.php
在包控制器中添加(如果不存在)以下方法:
namespace Concrete\Package\MyPackage\Controller\Dialog;
use Concrete\Core\Controller\Controller;
class MyDialog extends Controller
{
protected $viewPath = 'dialogs/my_dialog';
public function view()
{
/** your code */
}
}
现在位于单页面视图:
public function on_start()
{
Route::register('/my_package/my_dialog',
'\Concrete\Package\MyPackage\Controller\Dialog\MyDialog::view');
}
注意:
可以命名路线但是有人想要它(例如:<a class="btn btn-default btn-xs" data-button="my-dialog">My dialog</a>
<script type="text/javascript">
$('a[data-button=add-event]').on('click', function() {
$.fn.dialog.open({
href: '<?= URL::to('/my_package/my_dialog'); ?>',
title: 'My dialog',
width: '280',
height: '220',
modal: true
});
return false;
});
</script>
)。
对话JS的调用可能会得到更好的处理,请对其进行评论。