2013-12-10 3 views
2

기본 Lift 2.5 프로젝트가 어떻게 작동하는지 이해하려고합니다. 저는 lift_basic 응용 프로그램 템플릿에서 작업 중이며 SimplyLift 자습서로갑니다. 튜토리얼을 따라 할 때 대부분의 작업이 정상적으로 작동하는 것으로 나타 났지만 그 이유를 이해하는 데 어려움을 겪고 있습니다. 특히 :메뉴 구조

Menu.i("Home")/"index" >> User.AddUserMenusAfter 

나는 Lift API for Menu 보면, 어떤 기능 iMenu에 대한 나열되지 않으며 보인다 어떤 기능 /를 정의 할 수 있습니다. (이 문자열에 대한 함수를 참조 할 수 있지만 그 API 해당 / 다음과 같은 토큰에서 작동하는 것으로 나타납니다; i 문자열을 생성하는 경우 잘 모르겠습니다.) 내 기본 질문입니다; 어떻게하면 i()이 무엇을하는지 알 수 있습니까? (여기는 과정에서이 시점에서 Menu은 무엇입니까?) 그리고 일반적으로 (API에서 언급되지 않은 명확하게 작동하는 함수를 보았을 때) 무엇입니까?

제 생각에는 현재 Eclipse를 IDE로 사용하고 있습니다. 실제로 sbt 빌드가 실제로 컴파일되고 로컬로로드됩니다. 이클립스는 빌드 경로에 리프트 라이브러리가 없기 때문에 어떤 오브젝트/기능이 무엇을 의미 하는지를 추측 할 수 없다. Repo를 오염시키지 않고 라이브러리 구성을 두 곳에서 유지하면서 Eclipse가이를 인식 할 수 있습니까?

답변

2

i은 실제 클래스가 아니라 동반자 개체에 정의되어 있습니다. 당신은 소스에 여기 Menu.i 또는 scaladoc에서이 정의를 볼 수 있습니다

/** 
* A convenient way to define a Menu item that has the same name as its localized LinkText. 
* <pre>Menu.i("Home")/"index"</pre> is short-hand for <pre>Menu("Home", S.loc("Home", Text("Home"))/"index"</pre> 
*/ 

def i(nameAndLink: String): PreMenu = Menu.apply(nameAndLink, S.loc(nameAndLink, scala.xml.Text(nameAndLink))) 

/PreMenu의 일부로 정의하며 메뉴 LOC가에서 제공됩니다 위치를 지정할 수 있습니다.

이클립스를 사용하는 경우, sbteclipse 플러그인을 사용해보십시오. 그러면 이클립스가 종속성을 인식하는 데 도움이됩니다.

+0

덕분에 너무 많은 것, :. 여기에 전체 정보입니다! 동반자 관계는 나에게는 분명하지 않지만, 당신이 지적한 바로는 그렇게 많은 의미가 있습니다. 나는 sbteclipse를 가지고 있는데 왜 도움이되지 않는지 모르지만 별개의 문제입니다. 다시 한 번 감사드립니다! –

+0

일반적으로 x.y가 표시되면 x는 유형 (클래스/특성/추상 형식)이 아닌 값 (object/val/var/def)의 이름입니다. #가 # 접두사입니다 (클래스 # InnerType과 같습니다). – nafg

1

약 두 번째 문제. SBT로 프로젝트 구조를 생성 했습니까? 한마디로 https://github.com/typesafehub/sbteclipse/

나는 폴더에서 이미 생성 된 것을 제거하고 그 일식에 "프로젝트를 수입"후 eclipse with-source=true를 시작하고 그냥 작업 참조)

+0

나는 내가 가지고 있다고 생각하지만, 나는 가지지 않았다. 그리고 소스와 함께 다운로드하는 것은 확실히 유용합니다! 감사! –