小编Phi*_*ipp的帖子

Angular 2 - Routing - CanActivate使用Observable

我有一个实现CanActivateAuthGuard(用于路由).

canActivate() {
    return this.loginService.isLoggedIn();
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,CanActivate结果依赖于http-get-result - LoginService返回一个Observable.

isLoggedIn():Observable<boolean> {
    return this.http.get(ApiResources.LOGON).map(response => response.ok);
}
Run Code Online (Sandbox Code Playgroud)

我如何将它们结合在一起 - 使CanActivate依赖于后端状态?

angular2-routing angular2-http angular

75
推荐指数
3
解决办法
6万
查看次数

Angular2 - 从外部验证并提交表单

我有一个看起来像这样的简单形式

<form (ngSubmit)="save()" #documentEditForm="ngForm">
...
</form>
Run Code Online (Sandbox Code Playgroud)

并且需要提交表格并从外部检查其有效性

例如.以编程方式提交,或者<button type="submit"><form>标记之外提交.

angular2-forms angular

41
推荐指数
6
解决办法
4万
查看次数

布尔属性的单选按钮

我有一个简单的布尔属性valid在我的对象document ,需要将其绑定到无线输入.

这是我到目前为止:

<input type="radio" name="valid" id="validTrue" (click)="document.valid = true" [checked]="document.valid"/>
<input type="radio" name="valid" id="validFalse" (click)="document.valid = false" [checked]="!document.valid"/>
Run Code Online (Sandbox Code Playgroud)

至少在点击时设置属性,但无线电输入不显示其状态.在我的浏览器的开发者控制台中查看我发现ng-reflect-checked已设置属性但它似乎不会对html radio-input产生影响.

我究竟做错了什么?
有没有人有一个工作"angular2-boolean-radio-input"片段?

angular2-forms angular

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

Angular 2 - 一个组件触发刷新页面上的另一个组件

我有一个组件ComponentA,显示元素列表.此列表在此期间被列入ngOnInit.

我有另一个组件ComponentB提供可能影响ComponentA中显示的元素列表的控件.EG可以添加元素.

我需要一种方法来触发ComponentA的重新启动.

有人有想法吗?


细节

A是一个HeaderBar,其菜单显示"savedSearchs"列表

@Component({
  selector: 'header-bar',
  templateUrl: 'app/headerBar/headerBar.html'
})
export class HeaderBarComponent implements OnInit{
  ...
  ngOnInit() {
    // init list of savedSearches
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

B是一个可以保存搜索的SearchComponent

@Component({
  selector: 'search',
  templateUrl: 'app/search/search.html'
})
export class SearchComponent implements OnInit {
  ...
}
Run Code Online (Sandbox Code Playgroud)

typescript angular2-components angular

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

Angular 2 - 在会话中存储的便捷方式

有没有一种方便的方法来保存sessionStorage而无需手动监视属性更改和更新?

我有一个SearchComponent,例如属性"查询".

export class SearchComponent {
    private query: String;
    private searchResult: SearchResult;
    ...
Run Code Online (Sandbox Code Playgroud)

每次查询或searchResult发生更改(并且还有更多属性)时,我都必须手动更新sessionStorage.

sessionStorage.setItem('query', query);
Run Code Online (Sandbox Code Playgroud)

像自动完成工作的注释之类的东西会很棒:

export class SearchComponent {
    @SessionStored
    private query: String;
    @SessionStored
    private searchResult: SearchResult;
    ...
Run Code Online (Sandbox Code Playgroud)

我已经找到了类似的解决方案在这里.但是这个对于sessionStorage不起作用.

angular

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

Wildfly 10 - 如何使用较新版本的 jackson 进行应用程序

我有一个在 Wildfly 10 上运行的应用程序,需要更新版本的 jackson。简单地更新 Maven 依赖项是行不通的。Wildflys 自己的版本似乎会干扰......

有人有提示吗?

jackson wildfly wildfly-10

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

angular 2 - http错误处理程序中的注入服务

我有一个方法handleError(),如文档https://angular.io/docs/ts/latest/guide/server-communication.html#!#error-handling

private handleError(error: any) {
    console.error(error);
    console.log(this.loginService); // <- always undefined
    return Observable.throw(error);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,this.loginService未定义的,尽管它已在我的类中正确注入.它已经在其他方法中使用,但似乎在handleError不可用.

http-catch调用方法的方式可能是问题吗?如果是这样,我怎么能绕过那个?处理错误时我需要执行一些逻辑.

这是一个关于如何将handleError方法设置为回调的示例(与文档完全一样)

this.http.get(url,
              ApiRequest.ACCEPT_JSON)
              .map(ApiHelper.extractData)
              .catch(this.handleError);
Run Code Online (Sandbox Code Playgroud)

angular2-injection angular2-http angular

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

Angular 2 RC6 - "侧边栏"不是已知元素

我刚刚更新到RC6并遇到以下错误:

zone.min.js:1未处理的Promise拒绝:模板解析错误:'sidebar'不是已知元素:1.如果'sidebar'是Angular组件,则验证它是否是此模块的一部分.2.如果"侧边栏"是Web组件,则将"CUSTOM_ELEMENTS_SCHEMA"添加到此组件的"@NgModule.schema"以禁止显示此消息.("

sidebar不是一个组成部分.只是我在我的一个模板中使用的html标签.它们看起来像这样:

...
<sidebar class="main-nav">
    ...
</sidebar>
...
Run Code Online (Sandbox Code Playgroud)

我尝试用CUSTOM_ELEMENTS_SCHEMA这样更新我的NgModule AppModule :

@NgModule({
    declarations: [...],
    providers: [...],
    imports: [BrowserModule, routing, HttpModule, FormsModule, TranslateModule.forRoot()],
    bootstrap: [AppComponent],
    schemas: [ CUSTOM_ELEMENTS_SCHEMA ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

但这似乎没有做任何事情.

有没有人有想法或暗示?

angular2-template angular

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

Angular-DomSanitizer安全绕过-innerHTML样式奇怪的重新加载效果

我有一个用户可以编写文档的应用程序。内容以html格式交付,并且其中可能包含“未保存的内容”。例如,带有youtube视频的iframe

我这样输出

<div [innerHtml]="getDocumentContentTrusted()"></div>
Run Code Online (Sandbox Code Playgroud)

成分法

getMainContentTrusted(){
    return this.domSanitizer.bypassSecurityTrustHtml(this.documentContent);
}
Run Code Online (Sandbox Code Playgroud)

这样的作品。一切都可以正确显示,但是例如youtube-iframe就是documentContent的一部分,那么我就有副作用。在应用程序中任何位置的任何单击上,documentContent似乎都将重新加载

关于如何避免这种情况的任何提示?

angular

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

angular 2 - 复选框"checked"取决于函数而不是属性biind

我有一个复选框,需要根据函数结果显示为选中,而不是将其绑定到对象属性.

这很容易,但不可能:

<input type="checkbox" ([ngModel])="category.selected">
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为甚至会checked="false"导致复选框显示为已选中:

<input type="checkbox" [attr.checked]="isCategorySelected(category.id)"/>
Run Code Online (Sandbox Code Playgroud)

我需要这样的结果

<input type="checkbox">
<input type="checkbox" checked>
Run Code Online (Sandbox Code Playgroud)

取决于结果isCategorySelected(id).

任何帮助表示赞赏.

checkbox checked angular2-forms angular

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