2014-03-04 100 views
0

我正在做一個joomla 2.5組件,我試圖在模型或控制器中設置(什麼是最合適的?)我的數據庫請求的json響應(以後用angularJS獲取json)。json在joomla 2.5組件調用

這裏是我的模型(與DB響應):

<?php 
defined('_JEXEC') or die(); 

jimport('joomla.application.component.modelList'); 


class MediastoreModelList extends JModelList 
{ 
    function getListQuery() 
    { 
     $db = JFactory::getDBO(); 
     $query = $db->getQuery(true); 
     $query->select('id, type, designation', 'marque', 'prix'); 
     $query->from('produits'); 
     return $query; 
    } 
} 

我空控制器:

<?PHP 
defined('_JEXEC') or die('Restricted access'); 

jimport('joomla.application.component.controller'); 

class MediastoreController extends JController 
{ 
} 

我的觀點

<?php 
// No direct access to this file 
defined('_JEXEC') or die('Restricted access'); 

jimport('joomla.application.component.view'); 


class MediastoreViewList extends JView 
{ 

    function display($tpl = null) 
    { 
     $this->items = $this->get('items'); 

     parent::display($tpl); 
    } 

} 

和我的模板

<?php 
defined('_JEXEC') or die('Restricted access'); 
JHTML::script('media/com_mediastore/js/angular.min.js'); 
JHTML::script('media/com_mediastore/js/app.js'); 
?> 

<?php 
echo $this->items; 
?> 
<div class="content"> 
    <p>Nothing</p> 
</div> 

我該怎麼做?

非常感謝,

安東尼

+0

你什麼意思我該怎麼辦呢?它不工作?你有錯誤嗎?你不知道在哪裏放置文件? – Laoneo

+0

其實,我可以得到一個JSON與echo json_encode($ this-> items);在我看來。 但是如何在這個響應中調用我的角度應用程序中的服務?在一個新的控制器? – user3086809

+0

你是說你想做一個獨立的角度應用程序嗎? – Elin

回答

0

有點晚了.....

你好我的工作類似的東西。

在您的意見(sitepart)中添加一個名爲view.raw.php的文件。

您可以在url的末尾追加'format = raw'來瀏覽此文件。

例如:如果在瀏覽器中的零部件視圖頁是'http://test.com/test(IF SEF是),則追加個URL建議立即進行刪除是這樣的

http://test.com/test?format=raw並且如果SEF後是不是就使用&,而不是?

您可以在http.get服務的angularjs中使用此URL。

在view.raw.php文件中,確保你只是回顯結果而不是parent :: display($ tpl);.

這確實對我有用。

PS:我也在使用angualrjs,但想用許多菜單項的組件,並且網址不斷變化,所以我卡在那部分。

希望這可以解決您的問題。

問候, 潔