所以我 k新角度 JS(1.6.4)。我有一个组件,我想隐藏/使用控制器以编程方式显示。不幸的是,我不明白如何抓住我的组件,然后将ng-hide设置为false。角度:从控制器隐藏组件
现在,我的控制器看起来像这样的服务电话。当数据返回时,我想运行我的隐藏/显示逻辑:
<div id="container" class="flex-container"><!-- flex container -->
<div class="box" id="redbox" class="flex-item"><!-- flex item -->
<input id="searchTermInput" class="search-input">
</div>
<div class="box" id="greenbox" class="flex-item"><!-- flex item -->
<button id="searchButton" class="search-button" (click)="runSearch($event)">
Search
</button>
</div>
<hr width="100%" class="divider-line" ng-hide="dividerHider">
<div class="flex-item search-results">
<ul class="heroes">
<li *ngFor="let result of searchResults">
<span class="badge">{{result.id}}</span> {{result.title}}
</li>
</ul>
</div>
</div>
。
import { Component } from '@angular/core';
import {SearchService} from "./search.service";
import {SearchResult} from "./search-result";
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css'],
providers: [SearchService]
})
export class AppComponent {
title = 'app';
searchResults: SearchResult[];
constructor(private searchResultService: SearchService) { }
runSearch(ev): void {
var q = 100;
this.searchResultService.getHeroesSlowly().then(searchResults => {
this.searchResults = searchResults;
alert("Hello! I am an alert box!!" + this.searchResults.length);
//Call hide component here
}
)
}
}
我已经做了我的编程藏东西的研究,但他们的代码似乎并没有很在所有使用控制器。例如,在这里这个应答
这里
AngularJS - ng-hide with different ng-controller
我完全不知所措到关于“$范围”的代码是应该去。
任何帮助,非常感谢。
编辑:解决方案
我最终使用这种构造。
...
<hr width="100%" id="divider" class="divider-line" *ngIf="showDivider">
...
export class AppComponent {
showDivider = false;
runSearch(ev): void {
this.searchResultService.getHeroesSlowly().then(searchResults => {
this.showDivider = true;
}
)
}
}
您的代码和模板正在使用Angular 2+语法。 'ng-hide'指令是AngularJS(Angular 1.X)。范围和'ng-hide'不是Angular 2+的一部分。 – georgeawg
代码导入'@ angular/core'。这是Angular 2+而不是AngularJS 1.6.4。 – georgeawg
由于问题是措辞,这并不重复,因为它询问如何从控制器“以编程方式”隐藏。链接的问题没有回答。 –