我的 Angular 6 应用程序需要显示一个表格列表,其中一个表格是对其组成元素的一组化学分析。
假设我有一个金属合金A。我对其进行了不同的化合物分析以找出其化学成分:Fe:0.001%、Cu:0.042% 等。
这是我的数据源,它只是一个带有模拟的打字稿文件
import { Certificate } from './certificate';
export const CERTIFICATES: Certificate[] = [
{ serie: '1050 AJ', ident: 'Fe', moy_certified: 0.297 },
{ serie: '1050 AJ', ident: 'Cu', moy_certified: 0.04 },
{ serie: '1050 AJ', ident: 'Mn', moy_certified: 0.0374 },
{ serie: 'X332.0 AC', ident: 'V', moy_certified: 0.019 },
{ serie: 'X4002 AA', ident: 'Mn', moy_certified: 0.037 }
];
Run Code Online (Sandbox Code Playgroud)
我想使用 Angular 6 在 HTML 中显示这些数据,在表格列表中,其中一个系列的每个分析按如下方式分组:
Serie: 1050 AJ
-------------------------
| Element | …Run Code Online (Sandbox Code Playgroud) 在以 angular 访问特定路由之前,我想提供服务器端身份验证。
我有一个实现 CanActivate 的 AuthGuard 和一个服务 AuthService。authService 已经有一个private loggedIn: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(null);
视图订阅以了解用户是否登录。我真的不知道我的方法是否错误,但它似乎不起作用。
这是我在 auth.guard.ts 中的内容:
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot) : Observable<boolean> {
return this.authService.isAuthenticated().map((isLoggedIn) => {
if (isLoggedIn) {
return true;
} else {
this.router.navigate(['/login']);
return false;
}
})
}
Run Code Online (Sandbox Code Playgroud)
这是 auth.service.ts:
@Injectable()
export class AuthService {
private loggedIn: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(null);
constructor(
private router: Router,
private http: HttpClient
) {
}
get isLoggedIn() {
return this.loggedIn.asObservable();
}
isAuthenticated() : Observable<boolean> {
const headers …Run Code Online (Sandbox Code Playgroud) 有一个主机名向量,我想拉出任何包含来自另一个向量的字符串的主机名.
假设我有一个包含主机名和IP地址的2D向量:
std::vector<std::vector<string>> hostnames = {{"Mike-computer","1.2.3.4"},
{"John-computer","5.6.7.8"},
{"Monica-computer","9.10.11.12"}};
Run Code Online (Sandbox Code Playgroud)
另一个包含目标主机名的向量:
std::vector<string> targets = {"Mike", "Sophia"};
Run Code Online (Sandbox Code Playgroud)
如果hostnames向量中的任何行包含"Mike"或"Sophia",则拉出其信息.在这个例子中,"Mike-Computer"因为它包含"Mike"了我的targets向量,所以会被拉掉.
我在这个帖子上找到了我可以std::find在我的targets向量上使用但如果它不是完全匹配则无法工作.它只有在我明确说明"Mike-computer"但我不知道我查询的计算机的完整主机名时才有效.
这是一段代码:
for (std::vector<std::vector<std::string>>::iterator row = hostnames.begin(); row != hostnames.end(); ++row)
{
for (std::vector<std::string>::iterator col = row->begin(); col != row->end(); ++col)
{
if ((std::find(targetsList.begin(), targetsList.end(), *col) != targetsList.end()))
{
std::cout << *col << " is a match" << std::endl;
}
}
}
Run Code Online (Sandbox Code Playgroud)