小编Sei*_*vic的帖子

Angular 2从URL中删除哈希(#)

我试图从Angular 2中的网址中删除#符号,但我找不到任何关于如何删除它而没有产生任何问题的良好解释.

我记得AngularJS 1更容易添加 $locationProvider.html5Mode(true);

如果你能告诉我这是一个好习惯(删除#)还是可能影响应用程序的SEO(或改进它),我将不胜感激.

PS:我正在使用带有打字稿的Angular 2

html5 typescript angular

55
推荐指数
3
解决办法
5万
查看次数

将数据从子组件传递到父组件Angular2

我有一个名为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)

javascript components typescript angular

39
推荐指数
1
解决办法
6万
查看次数

JavaScript ES6中的静态方法和Angular 2服务

在使用Angular 2和多种计算服务编写应用程序时,我遇到了以下问题:

  1. 我何时在应用程序级别提供的Angular服务中使用static?那是胡说八道吗?
  2. 静态方法如何反映性能?让我们说几个hundret对象同时调用相同的静态方法.这个方法是不止一次实例化的?

这是类的快照,它为我提供了多种计算方法,并在应用程序级别实例化:

@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)

谢谢你的帮助.

javascript typescript angular2-services angular

21
推荐指数
1
解决办法
3万
查看次数

使用一个管角2过滤多个列

我正在尝试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)

javascript pipe filter typescript angular

17
推荐指数
2
解决办法
3万
查看次数

Angular 2 - 链接http请求

我从一个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)

javascript http rxjs angular

15
推荐指数
1
解决办法
5214
查看次数

使用Typescript将JSON对象数组转换为字符串数组

我正在使用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方法,但没有运气.

javascript arrays typescript

6
推荐指数
1
解决办法
6498
查看次数

以小时为单位的日期差异 - Angular 2

如何在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.

date typescript angular

6
推荐指数
1
解决办法
2万
查看次数

Angular 2.0中的字符串插值

我有一个字符串 {name} is my name. Greeting {sender}

在angualar 2.0中是否有一些模块,所以我可以像string.format()在C#中那样做一些事情?

我知道这可以使用vanila js自定义方法完成,但我想知道是否有角度2内的任何模块来处理这个问题.他们在模板绑定中使用插值,以便如何使用普通字符串

javascript typescript angular

4
推荐指数
1
解决办法
137
查看次数

Angular2 - 使用服务的组件之间的交互

我有两个组件A和B,其中组件A包含一个按钮.我希望当用户点击此按钮时,在组件B上触发一个功能

<A></A>
<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)

并且组件B使用routing进行渲染.我正在考虑使用具有可观察布尔值的服务,该服务指示是否单击了A中的按钮.这是实现它的正确方法吗?

typescript angular2-routing angular2-services angular

4
推荐指数
1
解决办法
5171
查看次数

Angular:为整个类(服务或组件)禁用变更检测器

如果通常导致更改检测运行的事件(setTimeout、setInterval、浏览器事件、ajax 调用等)来自特定类(服务或组件),是否有办法完全禁用 Angular 的更改检测器?

也就是说,当我发现setInterval在我的服务中注册导致全局更改检测每秒运行时,这对我来说似乎是完全错误的。

我知道我可以将我的代码包装在NgZone.runOutsideAngular方法的回调中,但我更喜欢可以为整个类禁用更改检测器的解决方案,因为我在服务中还有其他代码块也不必要地运行检测.

谢谢你的帮助。

typescript angular-services angular

2
推荐指数
2
解决办法
8843
查看次数

Angular2在组件中为null

我期待一些奇怪的情况,其中"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

1
推荐指数
1
解决办法
1474
查看次数