2017-04-10 6 views
0

私はと呼ばれる状態を持っていますとコントローラと私のangularjsアプリ(私はルーティングを使用しています)のテンプレートです。多くの要素があります。また、ng-clickのボタンがdoSomethingにリンクされています。私はと呼ばれる別の状態を持っています.Outside。これは完全に最初のものに似ていますが、doSomething別の作業を行います。Angularjsコントローラとテンプレートのカプセル化と角の成分

私は何も複製したくありません。 1つのコントローラとテンプレートでこれを行うにはどうしたらいいですか?そのようなシナリオ(コンストラクタを使用)でAngular2のコンポーネントが使用されるのはなぜですか?

いずれのアイデアも高く評価されます。

編集:第1の状態に

第一
$scope.doSomething = function() { 
    AuthService.logout(); 
} 

$scope.doSomething = function() { 
    $state.go('dashboard'); 
} 

他の部分のすべてが正確に同じです。

+0

あなたは私たちにあなたの共同を示すことができる機能が渡されている「追加」を参照してください用法 https://weblogs.asp.net/dwahlin/creating-custom-angularjs-directives-part-3-isolate-scope-and-function-parameters

を説明しますde? AngularJSまたはAngular2についての答えが欲しいですか? –

+0

は、機能を注入する命令のように聞こえます – Raulucco

+0

@Rauluccoはい、わかりませんが、そうですか?スニペットが必要です。 –

答えて

1

は良い例ですそれは

+0

「指示」が唯一の方法だと思われます。しかし、テンプレートを複製する必要があります。とりあえずありがとう。 –

+0

テンプレートを複製しないでくださいtransacludeを使用すると、テンプレートの変更部分を注入して、テンプレートの共通のものをカプセル化することができます – Raulucco

0

In Angular v1.x工場を作り、同じことをしたいコントローラに注入する必要があります。 工場の例が必要な場合は、私はあなたにそれを与える。私はカスタムディレクティブを作成し、あなたが指示パラメータここ

としての機能を設定するには「&」記号を使用するディレクティブを作成するときのdoSomething

のための機能で

を渡すことをお勧め

+0

ありがとうございます。しかし、私はこれが工場やサービスに関連していないと思う。編集部分をご覧ください。 –

関連する問題