2017-04-11 20 views
0

私はちょうど角を見つめて、表示したい単純な角成分(左上に表示されるグリフコンのグリフコンスター)を表示したいが、クリックできない星 。ここ角2のコンポーネントが動作しない

は私のコードです:app.componentで favorite.component.ts

import {Component} from 'angular2/core'; 

@Component({ 
    selector: 'favorite', 
    template: `  
<i 
     class="glyphicon" 
     [class.glyphicon-star-empty] ="!isFavorite" 
     [class.glyphicon-star]="isFavorite" 
     (click)="onClick()"> 
    </i> 
    ` 
}) 
export class FavoriteComponent { 
    isFavorite = false; 

    onclick() { 
     this.isFavorite = !this.isFavorite; 
    } 
} 

私はこの '好きな' コンポーネントをレンダリングしようとしている:

import {Component} from 'angular2/core'; 
import {CoursesComponent} from './courses.component' 
import {AuthorsComponent} from './authors.component' 
import {FavoriteComponent} from './favorite.component' 



@Component({ 
    selector: 'my-app', 
    template: '<h1>My First Angular 2 App</h1><courses></courses><authors></authors><button class ="btn btn-primary">Submit</button><br><favorite></favorite>', 
    directives: [CoursesComponent, AuthorsComponent] 
}) 
export class AppComponent { } 

はどのようにレンダリングします私のapp.componentのコンポーネントですか?

ここ

全コード:https://github.com/aindriu80/Angular2withTypeScript

コードは、コンポーネントをロードしません - 私はあなたがaタグでそれをラップし、それにクリックイベントを移動することができます F12 View Source Chrome

+0

は、あなたのモジュール定義 –

+0

は私自身angular2に新しい、しかし多くのチュートリアルでは、彼らはあなたが使用していたコンポーネントの一覧を表示するために彼らのapp.moduleを持っている傾向も表示することができますplatformbrowserdynamicをインポートしてmain.tsファイル内のモジュールをブートストラップします –

+0

モジュールの定義はどういう意味ですか?私はちょうど1つのcomponet favorite.component.ts typescrpypt – Aindriu

答えて

0

を以下にこれを行います。 app.components.tsファイルに欠落している指示がありました。大文字と小文字を区別してくれてありがとう。

app.component.ts

import {Component} from 'angular2/core'; 
import {CoursesComponent} from './courses.component' 
import {AuthorsComponent} from './authors.component' 
import {FavoriteComponent} from './favorite.component' 



@Component({ 
    selector: 'my-app', 
    template: '<h1>My First Angular 2 App</h1><courses></courses><authors></authors><button class ="btn btn-primary">Submit</button><br><favorite></favorite>', 
    directives: [CoursesComponent, AuthorsComponent, FavoriteComponent] 
}) 
export class AppComponent { } 

また、私はfavorite.components.tsファイル内のonClick()に大文字のCを持っていませんでした。

favorite.component.ts:

import {Component} from 'angular2/core'; 

@Component({ 
    selector: 'favorite', 
    template: `  
<i 
     class="glyphicon" 
     [class.glyphicon-star-empty]="!isFavorite" 
     [class.glyphicon-star]="isFavorite" 
     (click)="onClick()"> 
    </i> 
    ` 
}) 
export class FavoriteComponent { 
    isFavorite = false; 

    onClick(){ 
     this.isFavorite = !this.isFavorite; 
    } 
} 
0

お気に入りのお気に入りを取得します:

import {Component} from 'angular2/core'; 

@Component({ 
    selector: 'favorite', 
    template: ` 
    <a (click)="onClick()"> 
     <i 
      class="glyphicon" 
      [class.glyphicon-star-empty]="!isFavorite" 
      [class.glyphicon-star]="isFavorite" 
      > 
     </i> 
    </a> 
    ` 
}) 
export class FavoriteComponent { 
    isFavorite = false; 

    onClick() { 
     this.isFavorite = !this.isFavorite; 
    } 
} 
+0

ありがとう!グリフコンはまったく表示されませんか? – Aindriu

+0

申し訳ありませんが、二重引用符がありません。 –

+0

心配する必要はありません。何も表示しないコンソールブラウザでchrome – Aindriu

0

これを試してください。余分な二重引用符を '"' 削除

<i 
    class="glyphicon" 
    [class.glyphicon-star-empty] ="!isFavorite" 
    [class.glyphicon-star]="isFavorite" 
    (click)="onClick()"> 
</i> 

動作しない場合は、JavaScriptの識別子は大文字と小文字が区別されますのでご注意ください

<i class="glyphicon" [ngClass]="{'glyphicon-star-empty':!isFavorite,'glyphicon-star':isFavorite}" 
    (click)="onClick()"> 
</i> 
+0

メインページに何も表示されていないので、 ''に問題があると思います – Aindriu

0

以下試してください。

あなたのコンポーネントのテンプレートを(click)= "onClick()"がありますが、コンポーネントクラスはonclick(){...}を定義しています。

また、appフォルダがすべてのファイルを保持しているため、コードを少し構造化してみることは難しい。公式のスタイルガイドをチェック :私はチャンスを持っているかどうhttps://angular.io/docs/ts/latest/guide/style-guide.html#!#04-04

+0

はい、少し混乱します始める。私はonclickを試みたが運がない。 – Aindriu

+0

Angular2(beta7)の古いバージョンを使用していることがわかりました。 これは達成しようとしていることですか?ベータ版からはじまりますか? 現在Angular v4は既にリリースされています - http://angularjs.blogspot.ro/2017/03/angular-400-now-available.html – andreim

+0

Angular2に基づいてプロジェクトを開始することを目的としている場合は、今度はバージョン1.0の安定したAngular CLIを使用してください - https://github.com/angular/angular-cli これは開発をスピードアップするコマンドラインツールです。 – andreim

0

を私はそれを得た方法

import {Component} from 'angular2/core'; 

@Component({ 
    selector: 'favorite', 
    template: ` 
    <a (click)="onClick()"> 
     <i class="glyphicon" *ngIf="isFavorite" [ngClass]="glyphicon-star"> 
     </i> 

     <i class="glyphicon" *ngIf="!isFavorite" [ngClass]="glyphicon-star-empty"> 
     </i> 
    </a> 
    ` 
}) 
export class FavoriteComponent { 
    isFavorite = false; 

    onClick() { 
     this.isFavorite = !this.isFavorite; 
    } 
} 
+0

は機能しません。私はfavorite.components.tsをロードするapp.component.tsという別の角度のファイルを持っていますが、画面には何も表示されません - 表示元の Aindriu

関連する問題