Как передать параметр из View во фрагмент в Lift? - PullRequest
0 голосов
/ 18 декабря 2011

Я буду использовать слегка модифицированный Листинг 4.7 из книги «Исследование подъема», чтобы задать мой вопрос.

// In Boot.boot:
LiftRules.viewDispatch.append {
    case List("Expenses", "recent", acctId, authToken) =>
        Left(() => Full(RSSView.recent(acctId, authToken)))

    // This is a dispatch via the same LiftView object. The path
    // "/Site/news" will match this dispatch because of our dispatch
    // method defined in RSSView. The path "/Site/stuff/news" will not
    // match because the dispatch will be attempted on List("Site","stuff")
    case List("Site") => Right(RSSView)
}

// Define the View object:
object RSSView extends LiftView {
   def dispatch = {
      case "news" => siteNews
   }

   def recent(acctId : String, authToken : String)() : NodeSeq = {
       // User auth, account retrieval here
       ...
       <lift:surround with="rss" at="content">
          <lift:Vote.image />
       </lift:surround>
   }

   // Display a general RSS feed for the entire site
   def siteNews() : NodeSeq = { ... }
}

Как передать acctId из функции view, недавно использованной в фрагмент кода: Vote.image? Спасибо.

1 Ответ

0 голосов
/ 19 декабря 2011

Если вы пытаетесь получить acctId и authToekn из загрузки для пользователя, это не сработает.Загрузка запускается только при запуске веб-приложения, но не один раз для каждого пользователя.

Вам необходимо установить SessionVar's, когда пользователь входит в систему или когда вы обнаруживаете файл cookie автологина, а затем получить доступ к sessionVar, где вынужно это.

...