2009-12-10 3 views
0

Mon contrôleur MVC est chargé de transmettre le javascript de chargement souhaité à mon objet de vue qui l'insère dans le bas de mon modèle de page principale.Les tâches du contrôleur MVC?

Ma question est ... dois-je stocker le script js onload réel dans mon contrôleur, ou dois-je le stocker dans mon modèle, et le contrôleur le tirer à partir de là?

Ma confusion est enracinée dans le fait que son pas vraiment la logique métier ...

Option 1:

/* --- js store in my controller --- */ 
$page->add_js_onload('various jquery scripting'); 

Option 2:

/* --- js fetched from my model --- */ 
$page->add_js_onload($this->model->fetch_onload_js()); 

Ce qui est plus propre et plus évolutive (ou juste plus élégant)?

Répondre

2

Vous avez absolument raison lorsque vous dites "ce n'est pas vraiment de la logique métier". Lorsque vous faites MVC pour le web, vous devriez considérer le code JavaScript comme une vue ou une vue partielle (par exemple, /views/mywidget/myfile.js.php - auquel cas vous pouvez charger des données dynamiques si nécessaire), ou une entité séparée entièrement (par exemple /public/js/myfile.js, Inclure dans votre vue avec une étiquette script). Les spécificités dépendent du framework MVC que vous utilisez. Garder le code JS dans votre contrôleur ou votre modèle va à l'encontre des principes du MVC tout autant que de mettre du code HTML à cet endroit.

+0

donc ce que vous dites est d'avoir une vue séparée pour les js de la page, puis je peux le configurer à travers le contrôleur, puis l'injecter dans la vue html? – johnnietheblack

+0

Oui, fondamentalement, bien que je pense qu'il est généralement préférable de charger JS en tant que fichier séparé (

2

Vous devriez certainement le faire dans votre contrôleur. Mais je ne ferais que passer le nom d'un fichier Javascript à la vue et le chargerais dans votre vue avec les balises de script HTML.
Cela facilite la maintenance de votre code Javascript.

N'insérez dans votre modèle que du code associé à la logique métier et au modèle.

+0

+1 pour dire ce que j'allais faire, et de façon plus concise. – iandisme

Questions connexes