我试图从Angular 2中的网址中删除#符号,但我找不到任何关于如何删除它而没有产生任何问题的良好解释.
我记得AngularJS 1更容易添加 $locationProvider.html5Mode(true);
如果你能告诉我这是一个好习惯(删除#)还是可能影响应用程序的SEO(或改进它),我将不胜感激.
PS:我正在使用带有打字稿的Angular 2
我有一个名为search_detail的组件,其中包含另一个名为calendar的组件,
SearchDetail_component.html
<li class="date">
<div class="btn-group dropdown" [class.open]="DatedropdownOpened">
<button type="button" (click)="DatedropdownOpened = !DatedropdownOpened" class="btn btn-default dropdown-toggle" data-toggle="dropdown"
aria-haspopup="true" [attr.aria-expanded]="dropdownOpened ? 'true': 'false'">
Date <span class="caret"></span>
</button>
<ul class="dropdown-menu default-dropdown">
<calendar ></calendar>
<button > Cancel </button>
<button (click)="setDate(category)"> Ok </button>
</ul>
</div>
</li>
Run Code Online (Sandbox Code Playgroud)
SearchDetail_component.ts
import 'rxjs/add/observable/fromEvent';
@Component({
selector: 'searchDetail',
templateUrl: './search_detail.component.html',
moduleId: module.id
})
Run Code Online (Sandbox Code Playgroud)
Calendar.component.ts
import { Component, Input} from '@angular/core';
@Component({
moduleId:module.id,
selector: 'calendar',
templateUrl: './calendar.component.html'
})
export class CalendarComponent{
public fromDate:Date = new Date();
private toDate:Date = new Date(); …
Run Code Online (Sandbox Code Playgroud) 在使用Angular 2和多种计算服务编写应用程序时,我遇到了以下问题:
这是类的快照,它为我提供了多种计算方法,并在应用程序级别实例化:
@Injectable()
export class FairnessService {
constructor(){}
private static calculateProcentValue(value: number, from: number): number {
return (Math.abs(value) / Math.abs(from)) * 100;
}
public static calculateAllocationWorth(allocation: Allocation): number {
...
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我正在尝试Array
仅使用一个基于多个列过滤数据Pipe
.现在,它过滤第一列值.请检查我的下面的代码,并帮助我解决这个问题.
我的代码:
@Pipe({ name: "dataFilter", pure: false })
export class DataFilterPipe implements PipeTransform {
transform(value: Array<any>, filter: any[]) {
if (!filter) {
return value;
} else if (value) {
return value.filter(item => {
for (var i = 0; i < filter.length; i++) {
if (filter[i][1] == undefined) {
return true;
} else if ((typeof item[filter[i][0]] === 'string' || item[filter[i][0]] instanceof String) &&
(item[filter[i][0]].toLowerCase().indexOf(filter[i][1]) !== -1)) {
return true;
}
return false;
}
});
}
}
} …
Run Code Online (Sandbox Code Playgroud) 我从一个httpService获得一个RxJS Observable,这是来自Angular的实际http.现在,一旦我从中获得了积极的结果,我想处理我得到的下一个http请求this.retrieve()
.这或多或少是连续请求.有没有更好的方法呢?
return this.httpService.query(data)
.map(data => {
if(data.status > 1)
this.retrieve().subscribe();
return data;
});
Run Code Online (Sandbox Code Playgroud) 我正在使用Angular 2(最新版本).我试图转换一个JSON数组即
jsonObject = [
{"name": "Bill Gates"},
{"name": "Max Payne"},
{"name": "Trump"},
{"name": "Obama"}
];
Run Code Online (Sandbox Code Playgroud)
到一个字符串数组并只存储ie中的值
arrayList: [string] = [''];
Run Code Online (Sandbox Code Playgroud)
阵列.我尝试使用Stringify方法,但没有运气.
如何在angular2中的两个日期之间获得小时差异?我不想使用外部库moment.js
.
举例来说:incidentTime ='2017-03-05 11:26:16 AM'和creationTime ='2017-03-06 12:26:16 AM'
let time = +params.data.incidentTime - +params.data.creationTime;
console.log("time: " + time);
Run Code Online (Sandbox Code Playgroud)
它应该返回25小时,但它返回NaN
.
我有一个字符串 {name} is my name. Greeting {sender}
在angualar 2.0中是否有一些模块,所以我可以像string.format()
在C#中那样做一些事情?
我知道这可以使用vanila js自定义方法完成,但我想知道是否有角度2内的任何模块来处理这个问题.他们在模板绑定中使用插值,以便如何使用普通字符串
我有两个组件A和B,其中组件A包含一个按钮.我希望当用户点击此按钮时,在组件B上触发一个功能
<A></A>
<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)
并且组件B使用routing进行渲染.我正在考虑使用具有可观察布尔值的服务,该服务指示是否单击了A中的按钮.这是实现它的正确方法吗?
如果通常导致更改检测运行的事件(setTimeout、setInterval、浏览器事件、ajax 调用等)来自特定类(服务或组件),是否有办法完全禁用 Angular 的更改检测器?
也就是说,当我发现setInterval
在我的服务中注册导致全局更改检测每秒运行时,这对我来说似乎是完全错误的。
我知道我可以将我的代码包装在NgZone.runOutsideAngular
方法的回调中,但我更喜欢可以为整个类禁用更改检测器的解决方案,因为我在服务中还有其他代码块也不必要地运行检测.
谢谢你的帮助。
我期待一些奇怪的情况,其中"this"在组件内部为空.到目前为止,我在两种情况下看到了它:
1)当承诺被拒绝时:
if (this.valForm.valid) {
this.userService.login(value).then(result => {
if(result.success){
this.toasterService.pop("success", "Exito", "Inicio de session correcto");
this.sessionService.setUser(result.data);
this.router.navigateByUrl('home');
}
else{
this.error = result.code;
}
},function(error){
console.log("ERROR: " + error);
this.error = "ERROR__SERVER_NOT_WORKING";
console.log(this.error);
});
}
Run Code Online (Sandbox Code Playgroud)
在函数(错误)中,这是null,因此我无法分配相应的错误.
该服务以下列方式工作:
login(login : Login) : Promise<Response> {
return this.http
.post(this.serverService.getURL() + '/user/login', JSON.stringify(login), {headers: this.headers})
.toPromise()
.then(res => res.json())
.catch(this.handleError);
}
private handleError(error: any): Promise<any> {
console.log('An error occurred', error); // for demo purposes only
return Promise.reject(error.message || error);
}
Run Code Online (Sandbox Code Playgroud)
因此,在调用服务handleError时,此值将丢失.
2) - 使用sweetalert …
javascript typescript angular-promise angular2-services angular
angular ×10
typescript ×10
javascript ×7
arrays ×1
components ×1
date ×1
filter ×1
html5 ×1
http ×1
pipe ×1
rxjs ×1