2014-09-12 2 views
0

인라인 자바 스크립트로 시간이 지저분 해져서 이제는 모든 js (일부 최소 초기화 코드 제외)를 외부 타이프 스크립트 파일로 옮깁니다. js 코드를 재사용 할 수있게하는 것이 좋겠지 만,이 특정보기에는 매우 구체적입니다. js 코드는 많은 html 요소에 크게 의존합니다. 내가 가지고는이 같은 것입니다 :면도기보기 인라인 자바 스크립트를 외부 타이프 스크립트 파일로 옮깁니다.

module MyModule{ 

export class SomeClass{ 

    private $counter: any; 
    private $answers: any; 
    private $pager: any; 
    private $anotherSelector1:any; 
    private $anotherSelector2:any; 
    private $anotherSelector3:any; 
    private $anotherSelector4:any; 
    private someId: number; 

    constructor(public options: any) { 

     this.init(options); 

    } 

    private init(options) { 
     //setup objects, callbacks, other init code 
    } 
} 
} 

나는이처럼 내 cshtml 파일에서 호출 :

$(document).ready(function() { 

     var instance = new MyModule.SomeClass({ 
      $counter: $('#something'), 
      $answers: $('#something'), 
      $pager: $('#something'), 
      //code omitted for brevity 
      someId: "@Model.SomeId", 

     }); 


    }); 

이 방법이 더 깨끗한 면도칼보기가 발생합니다 비록 나에게 보인다 , typescript 파일은 여전히 ​​html DOM에 많은 의존성을 갖습니다. 내가 제대로하고 있니? 보기에서 html 리팩토링을 고려해야합니까? 또한 cshtml 파일의 init 코드를 ts 파일로 옮겨야합니까? 그렇지 않으면 그대로 두어야합니까? 나는 이와 같은 리팩토링을 할 때 최선의 관행을 찾고있다.

답변

0

나는 당신이 그것을 잘못하고 있다고 생각하지 않습니다. 당신의 우려를 이해하지만.

난 당신이 해결하고자하는 문제는 좀 DOM 선택기에 의존하지 않고 깨끗한 자바 스크립트처럼 생각, 당신이 실제로 기본적으로 템플릿 방식의 일종이다 knockoutjs 또는 angularjs 뭔가를 원하는 것 같다. 그것이 어떻게 행해지는지 데모가 있습니다.

관련 문제