0

我正在研究如何用 Mustache.php 做一些常见的事情。此时,我正在尝试替换模板中的原生 php switch 语句。

给定一个“状态”标志,例如'A'Active,

和一组显示选项A => Active, I => Inactive, P=>Pending, D=>Deleted,例如

如何通过修改模板中的数据在 Mustache.php 中制作一个漂亮的显示字符串?

表的示例数据:

$users = array(
array('username'=>'william', 'status'=>'A', 'date_created'=>'7-01-2012'),
array('username'=>'john', 'status'=>'P', 'date_created'=>'5-17-2012')
);
4

1 回答 1

2

Mustache 的重点是让您的模板从所有逻辑中清除。小胡子模板应该是无逻辑的。对于新手来说,这是一种完全不同且令人困惑的方法。

为了解决您的问题,您需要预先重新处理$users数组以包含您的 Mustache 模板所需的所有内容。例如,如果status字段switch语句旨在显示人类可读的状态,那么您的 View 类应该类似于:

class View_User {

    public $_users;

    public function users()
    {
        $users = array();
        foreach ($this->_users as $user)
        {
            $user->status_label = // Use your 'switch' statement here
            $users[] = $user;
        }
        return $users;
    }
}

然后你所有的 Mustache 模板需要做的,是{{status_label}}这样的输出:

<ul>
    {{#users}}
        <li>Status: {{status_label}}</li>
    {{/users}}
</ul>

在 View 类中包含您的逻辑,并使您的 Mustache 模板无逻辑。以这种方式分离的 UI 代码使得以后更容易维护和重构。

于 2013-01-10T17:34:11.017 回答