==================
首先,我只想说我是这个 AngularJs 业务的新手(今天早些时候开始),我可能把事情复杂化了。
话虽如此,让我们开始谈正事,好吗?
我有以下jsFiddle,html 输出如下。
<div ng-app="test" ng-controller="About" class="hex-grid clearfix ng-scope">
    <div class="hex odd" ng-repeat="person in ledning">
        <a href="">
           <div class="inner">
               <h3 class="ng-binding">Just a name</h3>
               <hr class="grid-1 center">
               <p class="ng-binding">a title</p>
           </div>
           <div class="hex-1">
               <span class="after"></span>
           </div>
           <div class="hex-2">
               <span class="after"></span>
           </div>
           <span class="after"></span>
        </a>
    </div>
   <!-- and 5 times more -->
</div>
现在,我想要实现的是 --> http://jsfiddle.net/engstrumpan/yCv79/4/embedded/result/。
这只是简单的 html(没有 AngularJs),只是为了演示我想要实现的目标。这种特殊的布局是通过<br />在六边形3和5之后插入来实现的
现在想象一下,如果我想要这样的布局
 1 1 1                1
1 1 1 1   or even    1 1
 1 1 1              1 1 1
                   1 1 1 1
                    1 1 1
                     1 1
                      1
一个人将如何实现这一点?该指令被多次使用,所以我希望它尽可能通用。
到目前为止我尝试过的是以下内容
var app = angular.module('test', []);
app.controller('About', function ($scope) {
    $scope.ledning = [
      {
        ...
        shouldBreak: true
      }
});
app.directive('hexagon', function () {
    var tmpl = '<div>
                   <!-- directive template snippet -->
                </div>
                <br ng-show="{{data.shouldBreak}}" />';
  // rest  of code
});
这<br ng-show="{{data.shouldBreak}}" />不起作用,因为 AngularJs 抛出异常并显示以下消息Template must have exactly one root element.
也像这样弄乱compile指令,但这只会导致在<br />最后一次迭代之后插入(在中继器完成工作之后)
var app = angular.module('test', []);
app.directive('hexagon', function () {
   return { 
     ...
     compile: function($scope, el, attrs){
        return function ($scope, el, attrs){
            if($scope.data.shouldBreak !== undefined){
                el.after('<br />');
            }
        };
     }
    }
});
我已经阅读了有关指令的文档,要么我很愚蠢,要么我错过了明显的东西,所以请帮助我。
walloftext 结束,也许睡一会儿就可以了。可以这么说,明天再骑马。