3

次の AngularJS アプリを検討してください。

メソッドaddPane()はペインをコントローラーのペイン リストにプッシュし、paneCount()その長さを返します。3 つのペインを作成した後paneCount()、バインディングからメソッドにアクセス{{paneCount()}}し、テストで直接: scope.paneCount()0 を返します。

AngularJS はコントローラーの 2 つのインスタンスを作成するようです。1 つはコントローラー メソッドからアクセスでき、もう 1 つはスコープからアクセスできます。2 つのインスタンスを作成する必要がある理由を知っている人はいますか? コントローラーとスコープの両方のメソッドから同じプロパティにアクセスする方法はありますか?

4

1 に答える 1

1

問題はあなたのコントローラ定義です! スコープを 2 回定義しました。コントローラー自体で 1 回、tabs ディレクティブのディレクティブ定義で 1 回。ディレクティブ定義はコントローラーのスコープをオーバーライドするため、カウントは正しくありません。

// scope: {}, not necessary because defined in controller ctrl

お役に立てれば :)

于 2013-07-31T12:57:53.203 に答える