Communiquer avec les directives de la fratrie

Objectif: Créer des comportements à l'aide des directives de communication entre les 2 éléments frères (chacun leur propre directive).

Un comportement à utiliser dans l'exemple: Le contenu de l'article est masqué par défaut. Lorsque le titre est cliqué, je veux un article de contenu à afficher.

Le hic: L'article associé éléments doivent associer les uns aux autres sans être imbriqué dans un seul parent de l'élément ou de la directive.

<div article="article1">this is my header</div>
<div id="article1" article-content>this is content for the header above</div>

<div article="article2">this is my header</div>
<div id="article2" article-content>this is content for the header above</div>

Je sais qu'il serait plus facile de placer le contenu dans l'article de la directive, cependant, cette question est de trouver comment résoudre ce genre de situation.

Le contenu de la directive passer lui-même à l'article de la directive en quelque sorte?

Ce code n'est pas très utile, car elle est maintenant, mais c'est un point de départ. Comment pourrais-je accomplir?

.directive('article', function(){
  return {
    restrict: "A",
    controller: function($scope) {
      $scope.contentElement = null;
      this.setContentElement = function(element) {
        $scope.contentElement = element;
      }
    },
    link: function(scope, element) {
      element.bind('click', function(){
        //Show article-content directives that belong
        //to this instance (article1) of the directive
      }
    }
  }
}
.directive('articleContent', function(){
  return {
    require: "article",
    link: function(scope, element, attrs, articleCtrl) {
      //Maybe reference the article i belong to and assign element to it?
      //I can't though because these are siblings.
    }
  }
}
  • Fait intéressant à noter, dans le $compiler le code source doc chaînes de caractères siblingDirectiveName est répertorié comme la première valeur possible le besoin de la propriété peut prendre. Malheureusement "siblingDirectiveName" ne pas obtenir de nouveau mentionnée dans la documentation, et il n'y a pas de travail exemples.
InformationsquelleAutor Coder1 | 2013-08-15