0

在我的系统中,每个用户都有自己的公开资料。我只想在当前登录用户的个人资料页面上显示“编辑”按钮。现在我正在使用此代码执行此操作

  @subjectPresent() {
    @if(userProfile == userLogged){
      <button>Edit</button>
    }
  }

whereuserProfile是当前页面的所有者用户,并且userLogged是实际登录的用户。

考虑到我将不得不多次进行此检查,在 Deadbolt 或 Scala 中是否有更好(更清洁)的方法来做到这一点?

4

2 回答 2

1

正如大卫建议的那样,您可以将其包装在您自己的标签中。标签只是函数,看起来像其他视图(实际上它们是其他视图)。

你可以尝试类似的东西

@(userProfile: User, userLogged: User)(body: => Html)

@subjectPresent() {
  @if(userProfile == userLogged){
    @body
  }
}

并将其保存在一个名为 foo.scala.html 的文件中

然后,您可以将其与

@foo(userProfile, userLogged) {
  <button>Edit</button>
}

您需要在必要时使用正确的类型声明或导入,例如用户、导入标签等。这取决于您项目的结构。

于 2013-11-19T12:41:02.003 回答
0

您最终需要进行与在上述代码段中所做的相同的逻辑检查,因此您可以创建一个新的“标签”(另一个视图)来接收“当前”用户并进行两项测试。您可能还想创建类似于在控制器端使用的东西,例如 SubjectPresentAction 的扩展。

于 2013-11-18T01:03:05.307 回答