タイトルにはネストされたカスタムディレクティブを使用するAngularプロジェクトに関するいくつかの問題があります。私はユーザーがチェックボックスをクリックして検索結果のJSONフィードをフィルタリングできるようにするインターフェイスを作成しています。次のように ディレクティブテンプレート階層は次のとおりです。Angular JS - ネストされたカスタムディレクティブを持つControllerAsを使用する
<filtergroup>
<filter></filter>
</filtergroup>
私はフィルタグループのためにテンプレート内のフィルタグループディレクティブのコントローラで定義された変数にアクセスすることができるように見えます。しかし、私は以下
require: '^filtergroup'
を使用しているにもかかわらず、子ディレクティブの中から同じ変数にアクセスすることはできません私のディレクティブです:
.directive('filtergroup', [function(){
return{
restrict: 'E',
transclude: true,
scope: { },
template: '<div><ng-transclude></ng-transclude>{{filtergroup.variable}}</div>',
bindToController: true,
controllerAs: 'filtergroup',
replace: true,
controller: function() {
var self = this;
self.variable = "blah";
}
};}])
.directive('filter', [function(){
return {
restrict: 'E',
template: '<div>{{filtergroup.variable}}</div>',
require: '^filtergroup',
scope: {},
link: function(scope, elem, attr, filtergroupCtrl){
scope.active = false;
}
};}]);
私もで、問題の単純化Codepenを作成しました:
これは私が狂気運転しているようhttp://codepen.io/decodedcreative/pen/NrNqXm
すべてのヘルプは素晴らしいことです!ありがとう
ありがとうございました。私は決してそれを働かせなかったでしょう。 Angularにはかなりの学習曲線があります。 –