मेरे नियंत्रक कार्यों में से एक के लिए एक AJAX अनुरोध वर्तमान में पूर्ण पृष्ठ HTML देता है।ज़ेंड फ्रेमवर्क 2: AJAX कॉल के लिए स्वतः अक्षम लेआउट
मैं केवल उस विशेष कार्रवाई के लिए HTML (.phtml सामग्री) वापस करना चाहता हूं।
$viewModel = new ViewModel();
$viewModel->setTerminal(true);
return $viewModel;
मैं अपने आवेदन स्वचालित रूप से लेआउट को निष्क्रिय कर सकते हैं एक AJAX अनुरोध का पता चला है जब:
निम्नलिखित कोड खराब मैन्युअल विशेष कार्रवाई के लिए लेआउट को अक्षम करके समस्या का हल? क्या मुझे इसके लिए एक कस्टम रणनीति लिखनी है? ऐसा करने के तरीके पर कोई सलाह बहुत सराहना की जाती है।
इसके अतिरिक्त, मैंने अपने ऐप Module.php में निम्न कोड का प्रयास किया है - यह AJAX सही ढंग से पता लगा रहा है लेकिन setTerminal() लेआउट को अक्षम नहीं कर रहा है।
public function onBootstrap(EventInterface $e)
{
$application = $e->getApplication();
$application->getEventManager()->attach('route', array($this, 'setLayout'), 100);
$this->setApplication($application);
$this->initPhpSettings($e);
$this->initSession($e);
$this->initTranslator($e);
$this->initAppDi($e);
}
public function setLayout(EventInterface $e)
{
$request = $e->getRequest();
$server = $request->getServer();
if ($request->isXmlHttpRequest()) {
$view_model = $e->getViewModel();
$view_model->setTerminal(true);
}
}
विचार?
धन्यवाद, सैम - मैंने ऐप के Module.php के साथ एक दृष्टिकोण शामिल करने के लिए अपनी पोस्ट भी अपडेट की है। SetTerminal() को ViewModel पर कोई प्रभाव नहीं पड़ने पर कोई विचार क्यों है? –
मेरा अनुमान है कि ऑनबूटस्ट्रैप नो व्यू मॉडेल() अभी तक मौजूद नहीं है, एक विचार नियंत्रक में टर्मिनल (सत्य) के साथ मॉडल को इंजेक्ट करना होगा और आउटपुट के लिए इसका उपयोग करना होगा (क्या मैं कोई समझ कर रहा हूं?) – Sam