使用 Yii2 进行渐进增强

Progressive Enhancement with Yii2

我正在尝试让我的网站在启用 js 和未启用 js 的情况下都能正常工作。我刚刚开始。所以我从注册一个新用户开始。我有一个 link 可以注册,它工作正常。

我还有一个 JS 版本,其中表单位于模式框中。

用户控制器

/**
* register via modal box
*/
public function actionJsRegister()
{
    // get js modal #id
    $js = '$("#create").modal("show")';
    // register js code
    $this->getView()->registerJs($js); 

    $model = new User();
    $userType = $model->getUserTypeDropDown();  

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        // set flash
        Yii::$app->session->setFlash('success', 'Account Created, please check your inbox');
        // send activation email
        return $this->redirect(['site/index']);
    } else {    
        return $this->render('jsCreate', [
            'model' => $model,
            'userType' => $userType,
        ]);
    }
}

1 - 那个控制器可以作为代码吗?

2 - 如果没有启用 js,如何使导航栏中的 link 仅显示常规版本,如果启用,则显示模态版本?

感谢您使用渐进式增强进行构建!您的网站将因此而更加强大。

由于我没有使用过Yii2,所以我不能专门针对控制器代码说话(尽管从逻辑上讲它看起来很合理),但是我可以讨论关于导航的第二个问题。最简单的方法是让导航栏默认存在,然后使用 JavaScript 劫持页面,将导航栏转换为模式。