jTable nevolá presenter, který má vrátit json
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Dragonaut
- Člen | 33
Dobrý den, snažím se rozchodit datagrid knihovnu z jtable.org
a mám následující kód :
default.latte šablona, která vykresluje tabulku
{layout '../Main/@layout.latte'}
{block content}
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.11.0/jquery-ui.min.js" type="text/javascript"></script>
<!-- Include one of jTable styles. -->
<link href="{$basePath}/js/jtable/themes/metro/blue/jtable.min.css" rel="stylesheet" type="text/css" />
<!-- Include jTable script file. -->
<script src="{$basePath}/js/jtable/jquery.jtable.min.js" type="text/javascript"></script>
<div id="ProductTableContainer"></div>
<script type="text/javascript">
$(document).ready(function () {
$('#ProductTableContainer').jtable({
title: 'Produkty',
actions: {
//listAction: '{link Product:list}',
listAction: '/backend.product/list'
//createAction: '/GettingStarted/CreatePerson',
//updateAction: '/GettingStarted/UpdatePerson',
//deleteAction: '/GettingStarted/DeletePerson'
},
fields: {
ID: {
key: true,
list: false
},
CategoryID: {
title: 'Kategorie',
width: '40%'
},
Name: {
title: 'Name',
width: '20%'
},
Description: {
title: 'Description',
width: '30%'
}
}
});
});
</script>
{/block}
{block js}{/block}
problém je v tom, že se mi nezavolá odkaz /backend.product/list, který pokud ho zadám do address baru ručně vrací
{
"Result":"OK",
"Records":
[
{"ID":1,"CategoryID":1,"Name":"Produkt 1","Description":"Popis 1"},
{"ID":2,"CategoryID":1,"Name":"Produkt 2","Description":"Popis 2"},
{"ID":3,"CategoryID":1,"Name":"Produkt 3","Description":"Popis 3"},
{"ID":4,"CategoryID":1,"Name":"Produkt 4","Description":"Popis 4"}
]
}
což by mělo být snad v pořádku. Metoda, která to vrací :
public function actionList()
{
$products = $this->db->fetchAll('select * from product');
$result = array();
$result['Result'] = "OK";
$result['Records'] = $products;
$this->sendResponse(new JsonResponse($result));
}
Otázky jsou tedy dvě.
- Proč se mi ajaxem nezavolá ta metoda a tím pádem mám datagrid prázdný (nezavolání jsem zkontroloval firebugem) ?
- Jak vložit url na metodu (actionList) do javascriptu pomocí latte šablony ?
pokud použiju {link Product:list} tak se mi vloží do zdrojového kódu
listAction: '"\/backend.product\/list"'
což zřejmě nebude dobře.
Nějaké nápady ?
Děkuji