2014-05-02 40 views
0

我一直在我的Zf2項目中使用ViewModel和JsonModel。我想知道的是,當ajax調用和html被渲染爲div時,哪個更適合使用?Zf2 ViewModel vs JsonModel

return new ViewModel(array()); 

or 

return new \Zend\View\Model\JsonModel(array()); 

兩者是否具有相同的效率?還是還有其他一些我還沒有明白的區別?

回答

2

JsonModel是ViewModel的子類,它只是禁用佈局,將所有變量序列化成json並返回它。

如果你想用javascript創建/渲染HTML標記,在大多數情況下使用JsonModel返回數據會更好。如果在通過ajax調用獲取HTML部分後不需要操作HTML部分,請使用ViewModel:準備HTML標記,通過調用setTerminal(true)來禁用佈局並返回它。

+0

+1您可以使用渲染器'$ html = $ this-> getServiceLocator() - > get('viewrenderer') - > render($ viewModel)來渲染HTML並將其包含在JSON響應中;' – AlexP

+0

@AlexP和foozy,非常感謝你,這些方法之間有速度差異嗎?我所做的是調用ajax,而不是成功加載整個頁面,而是替換特定div元素的html –