在我的系统中,每个用户都有自己的公开个人资料。我想展示一个"编辑"按钮仅在当前登录用户的配置文件页面上。 现在我通过使用此代码
来完成此操作 @subjectPresent() {
@if(userProfile == userLogged){
<button>Edit</button>
}
}
其中userProfile
是当前页面的所有者用户,userLogged
是实际登录用户。
考虑到我必须多次检查,Deadbolt或Scala是否有更好(更干净)的方法呢?
答案 0 :(得分:1)
正如大卫建议的那样,你可以将它包装在你自己的标签中。标签只是功能,看起来像其他视图(事实上,它们是其他视图)。
您可以尝试类似
的内容@(userProfile: User, userLogged: User)(body: => Html)
@subjectPresent() {
@if(userProfile == userLogged){
@body
}
}
并将其保存在名为foo.scala.html
的文件中然后您可以将其与
一起使用@foo(userProfile, userLogged) {
<button>Edit</button>
}
您需要在必要时使用正确的类型声明或导入,例如:用户,导入标签等。这取决于项目的结构。
答案 1 :(得分:0)
您最终需要在上面的代码片段中进行相同的逻辑检查,这样您就可以创建一个新的“标记”(另一个视图),它接受“当前”用户并进行两项测试。你也可能想要在控制器端创建类似的东西,比如SubjectPresentAction的扩展。