2009-12-10 56 views
0

我的MVC控制器负责将所需的onload javascript传递给我的视图对象,该对象将其插入到我的主页面模板的底部。MVC控制器作业?

我的问题是......我应该存储实际的onload JS脚本在我的控制器,或者我应该把它存放在我的模型,并有控制器从那里拉呢?

我的困惑是植根于一个事实,即它不是一个真正的业务逻辑...

选项1:

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

选项2:

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

哪一个更清洁,更可扩展性(或者更优雅)?

回答

2

当你说“这不是真正的商业逻辑”时,你是完全正确的。当为网络进行MVC时,您应该考虑使用JavaScript代码作为视图或部分视图(例如/views/mywidget/myfile.js.php--在这种情况下,如果需要,您可以将动态数据加载到该视图中)或完全独立的实体(例如/public/js/myfile.js,在您的看法中将包含script标签)。具体取决于你正在使用的MVC框架。

在您的控制器或模型中保留实际的JS代码违反了MVC原则,就像将HTML代码放在那里一样。

+0

所以你说的是有一个单独的视图为页面的js,然后我可以配置它通过控制器,然后将其注入到html视图? – johnnietheblack 2009-12-10 22:49:01

+0

是的,基本上,尽管我认为将JS作为单独文件加载(

2

你应该在你的控制器中做到这一点。但我只会将JavaScript文件的名称传递给视图,并使用HTML脚本标记将其加载到视图中。
这使得它更容易维护您的Javascript代码。

只能将模型中的代码放入业务逻辑并与模型紧密相关。

+0

+1用于说出我要做什么,并且更简洁。 – iandisme 2009-12-10 19:34:43