私はこの質問をしましたが、私が求めている特定の質問は劇的に変化しました。条件に基づいてng-controllerをインスタンス化する方法
私は、コードの一部を持っている:
<div ng-attr-controller="{{pings || 'PingsCtrl as pings' }}">
<h1 ng-click="pings.press()">asdf</h1>
</div>
このコードは、2つのHTMLページ内に注入されます。 1ページは既にPingsCtrl
に電話しています。もう片方はしません。私は実際にこのコードをDRYにしておきたいと思っています。私は上記のコードを参照したいだけです。
を生成するために上記のコードを書くには、PingsCtrl
がまだインスタンス化されていない場合はどうすればよいですか。
ここに2つのhtmlページがあります。
HTML
// First page
<html ng-app="coolApp">
<div ng-controller="PingsCtrl as pings">
<div ng-attr-controller="{{pings || 'PingsCtrl as pings' }}">
<h1 ng-click="pings.press()">asdf</h1>
</div>
</div>
</html>
// Second page
<html ng-app="coolApp">
<div ng-attr-controller="{{pings || 'PingsCtrl as pings' }}">
<h1 ng-click="pings.press()">asdf</h1>
</div>
</html>
Javascriptがここにある:
は何が問題になっていますangular.module('coolApp', [])
.controller('PingsCtrl', function() {
var vm = this;
vm.press = function() {alert(123)};
})
と私はこれをどのように解決するのですか?
間でデータを共有する方法を確認するために私の解決策を確認するには、あなたが一緒にplunkerまたはjsfiddleを置くことができますか? – SoluableNonagon
共通の機能を**工場サービス**に入れることを検討してください。それらはシングルトンであり、自動的に一度だけロードされます。 https://docs.angularjs.org/guide/services#creating-services – georgeawg
を参照してください。少しでも何かを試してみましょう。投稿したコードはすべて必要です。 – jason328