使用 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 劫持页面,将导航栏转换为模式。
我正在尝试让我的网站在启用 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 劫持页面,将导航栏转换为模式。