我想知道,这是更好的做法
i。在父组件中使用 ng-content ,稍后在创建子组件时,将子组件包含在父选择器中。
例如:我想创建一个父视图作为组件。 一个。 LandingComponet(家长):
<div>
Website Landing view
....
...
<ng-content></ng-content>
....
...
<footer></footer>
...
</div>
湾LoginComponent或RegisterComponent(子组件)
<app-landing>
<div>
Login view or Register view
...
</div>
</app-landing>
℃。为所有子组件添加单独的路由
{ path: '', component: LandingComponent },
{ path: 'login', component: LoginComponent },
{ path: 'register', component: RegisterComponent }
ii。在父组件中使用 router-outlet ,并在路由文件中创建多个子路由。 例如:我想创建一个父视图作为组件。 一个。 LandingComponet(家长):
<div>
Website Landing view
....
...
<router-outlet></router-outlet>
....
...
<footer></footer>
...
</div>
湾LoginComponent或RegisterComponent(子组件)
<div>
Login view or Register view
...
</div>
℃。在app.routing.ts中添加路由器
{
path: '',
component: LandingComponent,
children: [
{ path: 'login', component: LoginComponent },
{ path: 'register', component: RegisterComponent }
]
}
两者都有利有弊,这对我来说是一个问题,
我个人喜欢第二种(ii。)方法,任何抬头都会帮助我 做出决定。
答案 0 :(得分:2)
实际上,两者完全不同,或者我们不能说您可以ng-content
使用router-outlet
所需的ng-content
。
基本上
当我们必须将一些内容包装在另一个组件中时,使用NG-含量
,几乎不使用ng-content
2或3级深度组件。
此外,您可以设置为ng-content
等样式,但
当我们必须为应用程序配置路由结构时使用路由器出口
。
当我们必须在一个插座中加载许多/不包含组件时。
另外,我建议您不要在用例中使用router-outlet
,而是使用<?php session_start();
$_SESSION['code'] = '1323'; // here will your captcha is stored i have used a constant value;
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form>
<input type="text" name="captcha" id="captcha">
<input type="submit" name="submit" value="submit" onclick=" event.preventDefault(); q_form_val();">
</form>
<script>
function q_form_val() {
var captcha_entered = document.getElementById("captcha").value;
if (captcha_entered == "") {
alert("Please enter the Captcha");
return false;
}else if( captcha_entered == "<?php echo $_SESSION['code']; ?>" ){
alert("captcha matched");
return true;
}else if( captcha_entered != "<?php echo $_SESSION['code']; ?>" ){
alert("captcha not matched");
return false;
}
}
</script>
</body>
</html>
。