结合两个Directive0和&

时间:2018-01-22 12:19:39

标签: scala akka-http

我预定了两个Directive0如下:

def mySetCookie = if(cookies.length == 1) setCookie(cookies(0)) else if(cookies.length > 1) setCookie(cookies(0), cookies.tail: _*) else pass
def mySetHeader = if(headers.length > 0) respondWithHeaders(headers: _*) else pass

在尝试将这两个指令一起使用时,以下工作原理:

mySetCookie
{
  mySetHeader
  {
    complete(StatusCodes.OK)
  }
}

但以下情况并非如此:

mySetCookie & mySetHeader
{
  complete(StatusCodes.OK)
}

我收到以下消息:

Error:(116, 21) type mismatch;
found   : akka.http.scaladsl.server.Route
(which expands to)  akka.http.scaladsl.server.RequestContext => scala.concurrent.Future[akka.http.scaladsl.server.RouteResult]
required: akka.http.scaladsl.server.ConjunctionMagnet[Unit]

我理解错误信息,但有没有办法可以将两个指令组合起来,就像我想要实现的那样?

1 个答案:

答案 0 :(得分:2)

指令通常需要括在括号中,如nicodp建议的那样。试试<div id="app"> <ul> <li v-for="item in list"> <p>{{item.goods_name}}</p> <p>{{item.goods_price}}</p> <a v-show="item.count > 0" @click.stop.prevent="lessCart(item,$event)">-</a> <input v-show="item.count > 0" v-model="item.count"> <a @click.stop.prevent="addCart(item,$event)">+</a> </li> </ul> </div>