我按照说明安装了primeng,npm install primeng --save然后运行然后在app.module.ts文件中导入我需要的东西,例如:
import {CheckboxModule} from 'primeng/primeng';
...
imports: [
CheckboxModule,
],...
Run Code Online (Sandbox Code Playgroud)
然后我将样式表添加到index.html文件中:
<head>
...
<link rel="stylesheet" type="text/css" href="../node_modules/primeng/resources/themes/omega/theme.css" />
<link rel="stylesheet" type="text/css" href="../node_modules/primeng/resources/primeng.min.css" />
<link rel="stylesheet" type="text/css" href="../node_modules/font-awesome/css/font-awesome.min.css" />
</head>
Run Code Online (Sandbox Code Playgroud)
我的IDE可以找到文件位置(通过按住ctrl并单击href值),但浏览器找不到它(404错误).
我复制了复选框示例(http://www.primefaces.org/primeng/#/checkbox)并将其添加到我的一个组件中,但样式与普通复选框相同.
此外,不会抛出其他错误.
样式是否应该添加到另一个文件?我不确定为什么它不起作用.
我正在尝试从特定类调用服务,但由于某种原因它无法调用,即使我能够在其他类中使用它.我正在使用@Input.我不知道这是否是造成问题的原因.
码:
import { Component, Input, OnInit } from '@angular/core';
import { Category } from './../Category';
import { CertService } from './../../shared/Service/cert.service';
@Component({
selector: 'app-cert-item',
templateUrl: './cert-item.component.html'
})
export class CertItemComponent implements OnInit {
@Input() category: Category;
@Input() categoryId: number;
constructor(
private certService: CertService //Console error "No provider for CertService!"
) { }
ngOnInit() {
console.log(this.certService.getCategories());
}
}
Run Code Online (Sandbox Code Playgroud)
app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import …Run Code Online (Sandbox Code Playgroud) 我想要一种有效的方法来存储(和更新)前端中的当前用户详细信息,而不是在加载新组件时向后端发出新的HTTP GET请求.
我添加了一个UserService类,它在调用类中的方法时设置/更新currentUser对象.
import { Http, Response } from '@angular/http';
import { Injectable } from '@angular/core';
@Injectable()
export class UserService {
public currentUser: any;
constructor(private http: Http) { }
updateCurrentUser() {
this.http.get('api/login/currentUser').subscribe(data => {
this.currentUser = data;
});
}
}
Run Code Online (Sandbox Code Playgroud)
我发现这种方法会导致竞争条件问题.例如,如果currentUser.username在概要文件组件中请求但服务类尚未完成请求,则会发生错误.
我也尝试检查是否currentUser未定义然后调用updateCurrentUser()但它似乎不起作用.
if(this.userService.currentUser === undefined){
this.userService.updateCurrentUser();
}
Run Code Online (Sandbox Code Playgroud)
使用的HTML更新:
我使用数据绑定来显示用户名(直接从UserService类调用它).例如
<span class="username-block">{{userService.currentUser.username}}</span>
Run Code Online (Sandbox Code Playgroud)
我也尝试将currentUser对象分配给我试图显示用户名的组件中的变量,但它具有相同的结果.
我将不胜感激任何帮助/反馈.
切换按钮显示在移动视图中,但不可单击。In AngularappDropdown用于定义下拉按钮。是否有类似的方法来修复切换按钮?
不幸的是,我无法在这里显示图像,但“管理”下拉按钮还有另一个问题。当我将鼠标悬停在内部<li>(例如“注册”...)上时,它将颜色更改为灰色。
添加href= "#"会删除不需要的颜色更改,但单击时会刷新整个页面。
这是 HTML:
<nav class="navbar navbar-webmaster">
<div class="container">
<div class="navbar-header">
<button type="button" appDropdown class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" [routerLink]="['/']">Title</a>
</div>
<div class="collapse navbar-collapse" id="navbar">
<ul class="nav navbar-nav navbar-right">
<li class="active"><a href="#">Sublime<span class="sr-only"></span></a></li>
<li class="dropdown" appDropdown *ngIf="userService.isAdmin">
<a class="dropdown-toggle" role="button" aria-haspopup="true" aria-expanded="false">Administration <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a [routerLink]="['/register']">Registration</a></li>
<li><a>Other Admin Stuff</a></li>
<li role="separator" class="divider"></li>
<li><a>Another Admin Stuff</a></li>
</ul>
</li>
</ul> …Run Code Online (Sandbox Code Playgroud)