나는 내 라우팅 정의하고있어 내 routes.coffee
파일에서 RequireJS
RequireJS는 실행할 항목과로드 할 항목을 어떻게 결정합니까?
를 사용하여 EmberJS
응용 프로그램을 실행 해요 : 나는 그것을 이해, 그건 define
아닌 require
의 구체적
define ['jquery'
'ember'
'_'
'cs!myapp/myapp'
"cs!myapp/routes/index_route"
], ($, Ember, _, MyApp, IndexRoute) ->
alert "Inside myapp route"
MyApp.Router.map() ->
@resource "play", path: '/play',() ->
@resource "myapp", {},() ->
@resource "games", {},() ->
@route "next"
@resource "frames", {},() ->
@route "commercial"
@resource "trivia", {},() ->
@route "commercial"
@route "start"
@route "howItWorks"
@route "goodbye"
@route "readyToStart"
@route "noContent"
MyApp.IndexRoute = IndexRoute
를, 그래서 shouldn 그 코드를 실행하지 마라. 그러나 경고가 울립니다. 무슨 일이 일어나고있는거야?
'routes.coffee'는'main.coffee'의'define'에서 사용됩니다. 그래서'define'에있는 것만으로 실행된다는 뜻입니까? – Shamoon
예. RequireJS가'main.coffee'를 적재하면'routes'를 포함하는'define' 호출에 전달 된 의존성 목록을 읽습니다, 그래서'routes.coffee'를 적재합니다, 그러면 그것의 팩토리 함수가 호출됩니다 및 경고. 그러나,'factory'를 호출하는'routes' 함수는 ** 정의 ** 호출이 아닙니다. 'define '의 팩토리 함수는 항상 * another *'define' 또는'require' 호출에 의해 실행됩니다. – Louis