2009-12-10 3 views
0

내 MVC 컨트롤러가 원하는 onload 자바 스크립트를 내 뷰 객체에 전달하여 내 기본 페이지 템플릿의 맨 아래에 삽입합니다.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 코드를 유지하는 것은 HTML 코드를 넣는 것과 마찬가지로 MVC 원칙에 위배됩니다.

+0

당신이 말하는 것은 페이지의 js에 대한 별도의보기를 가지고 있으며 컨트롤러를 통해 구성 할 수 있으며 HTML보기에 삽입 할 수 있습니까? – johnnietheblack

+0

네, 기본적으로 JS를 별도의 파일 (

2

컨트롤러에서이 작업을 수행해야합니다. 하지만 자바 스크립트 파일의 이름을 뷰에 전달하고 HTML 스크립트 태그를 사용하여이 뷰를로드합니다.
이렇게하면 Javascript 코드를보다 쉽게 ​​유지 관리 할 수 ​​있습니다.

비즈니스 논리이고 모델과 밀접하게 관련된 모델의 코드 만 입력하십시오.

+0

+1 내가 무엇을하고 더 간결하게 말했는지. – iandisme