2016-05-15 14 views
0

total_numberを読み取って変更するスコープ変数を想像してください。私はtotal_number<=10の場合は等しい数のdivを作成したい場合は、半分の数値を10< total_number<=20に設定します。私はディレクティブを使用しなければならないと思いますが、divの数をどのように定義するのかはわかりません...私はリンクを使用しても何を書かなければなりませんか?角を使用してdivのカスタム数を追加する

答えて

1

例をdirectiveで作成してくださいすべての質問は私にPLZを知らせる。

angular.module('app', []) 
 
    .controller('appCtrl', function($scope, $filter) { 
 
    $scope.total_number = 10; 
 
    }) 
 
    .directive('divBuilder', function() { 
 
    return { 
 
     restrict: 'EA', 
 
     scope: { 
 
     count: '@' 
 
     }, 
 
     link: function(scope, element, attrs) { 
 
     var count = Number(scope.count); 
 
     if (!count || count <= 0) { 
 
      return false; 
 
     } 
 
     if (count > 10 && count <= 20) { 
 
      count = Math.floor(count/2); 
 
     } 
 
     var div = ''; 
 
     for (var i = 0; i < count; i++) { 
 
      div += '<div class="line">' + (i + 1) + '</div>'; 
 
     } 
 

 
     element.append(div); 
 
     } 
 
    }; 
 
    });
div.line { 
 
    border: 1px solid #ccc; 
 
    margin: 10px 0; 
 
    padding: 2px 10px; 
 
}
<html> 
 

 
<head> 
 
    <title>Single Demo</title> 
 
    <script src="//cdn.bootcss.com/jquery/2.2.1/jquery.js"></script> 
 
    <script src="//cdn.bootcss.com/angular.js/1.4.7/angular.js"></script> 
 
    <script src="app.js"></script> 
 

 
</head> 
 

 
<body ng-app="app" ng-controller="appCtrl"> 
 
    <div-builder count="{{total_number}}"></div-builder> 
 
</body> 
 

 
</html>

+0

ソリューションにいくつかのコメントを追加する(それはそれがない/何をどのように動作するか)良いでしょう。 –

関連する問題