ちょうどAngularJSを使い始めました。AngularJS:templateUrlはコントローラの構築を守り、依存するコードブレーク
<outer>
<inner></inner>
</outer>
がouter.html
負荷inner.html
前に、そしてノーがある場合:
angular.module('components', []) .directive('outer', function() { return { restrict: 'E', replace: true, transclude: true, scope: {}, link: function(scope) { ... }, controller: function($scope) { ... }, templateUrl: 'outer.html' // Note this }; }) .directive('inner', function() { return { require: '^outer', // And this restrict: 'E', ... link: function(scope, element, attrs, outerCtrl) { ... }, templateUrl: 'inner.html' }; });
は、次のようなHTMLで使用:のは、私は2つのディレクティブ、のいずれかのようなので、他を必要があるとしましょう問題は全くありません。
<outer>
は正しく変換され、スコープとコントローラが割り当てられ、
<inner>
はコントローラを正常に受信します。
<outer>
のコントローラが作成されている、と
それはエラーメッセージ 『::いいえコントローラ外エラー』で失敗する前に、逆の順序でテンプレート負荷もし
は、しかし、<inner>
がリンクされています。
サーバー側の負荷遅延をinner.html
に接続しようとしましたが、最初にouter.html
が読み込まれている限り、どこに問題はありません。同様に、outer
のテンプレートをインライン化すると(templateUrl
の代わりにtemplate
を使用)、そのテンプレートが最初に利用可能になり、すべてがうまく機能します。
templateUrl
を他のディレクティブで必要とされるディレクティブに使用する方法を知っている人はいますか?私の実際のコードでは、内部ディレクティブが外側のコントローラにアクセスできることが重要です。templateUrl
をtemplate
よりも好むと、前者はレイアウトを動作と区別し、コードが大きくなりました。
事前にお詫び申し上げます。これまでにお問い合わせいただきありがとうございました。私はスタックオーバーフローに関する同等の質問を見つけることができませんでした。
私はこの正確な問題を抱えていましたが、プライオリティレベルの調整は役に立ちませんでした(1.0.5でなく1.0.7ではありません)。私の場合は、コントローラに依存した '内側'であり、いくつかの '内部'があり、他の人に起こるものを必要とする(それは高度なアコーディオンです)ために、依存関係を破る簡単な方法はありません。 。 – ivarni