2016-03-23 31 views
0

Json dosyasından paragraf ekliyorum. Onları nasıl sayabilirim (.length ile denedim) ve eğer 10'dan daha azsa, varsayılanları oluşturup bunları sayfaya eklemem gerekir. Örneğin kullanıcı, bazı özel metin içeren paragraflar ekleyebilir ve 3 paragraf eklerse, varsayılan olarak 7 tane daha eklemek istiyorum. Yani her zaman 10 sayfada bulunur. İşte benim yapıdır ve ben sadece 4 json dosyasında var çünkü şu anda 4 paragraflar gösteriyor: Kullanıcı paragraf ekleme yoksaAçısal JS varsayılan olarak paragraf oluşturmuyor

<div class="row" ng-repeat="p in list.paragraphs" ng-class="isSelectedBoard(p)"> 
    <p class="slide-wrap" ng-click="setMasterBoard(p)"> 
     some text goes here 
    </p> 
</div> 

Yani, yine, bazı varsayılan metin ile sayfadaki 10 göstermek gerekir ve eğer kullanıcı 1 paragraf eklerse, o zaman 1 özel paragraf ve 9 varsayılanı olacaktır.

Herhangi bir fikir bunu nasıl başarabilirim?

Teşekkürler.

DÜZENLEME:

Denetleyici:

$scope.list = {}; 

$http.get('name.json').success(function(data, status, headers, config) { 

    $scope.list = data; 

}); 
+1

eşit paragraphs uzunluğunu yapmak için yeterli varsayılan paragraflar görünüyor eklemek Bunu kontrol cihazınızda yapmak çok daha kolay olurdu. – Lex

+0

tamam, herhangi bir öneri? Çalışmak istediğim en iyi jsfiddle olurdu :-) – Morpheus

+0

Mevcut denetleyici kodunuzu veya en azından bu paragrafların yüklenmesiyle ilgili kısmı görebilir miyim? – Lex

cevap

2

ben denetleyicisi bu yapardı. json dosyasından paragrafları ekler fonksiyonda, dosyadan tüm paragraflar ekledikten sonra, basit bir şekilde olsa 10.

angular.module('app', []).controller('MyController', function($scope) { 
 

 
    $scope.list = { 
 
    paragraphs: [{ 
 
     text: 'This is a user paragraph.', 
 
     defaultBG: '#000' 
 
    }, { 
 
     text: 'This is another user paragraph.', 
 
     defaultBG: '#000' 
 
    }, { 
 
     text: 'This is a third user paragraph.', 
 
     defaultBG: '#000' 
 
    }] 
 
    } 
 

 
    var defaultParagraph = { 
 
    text: 'This is a default paragraph.', 
 
    defaultBG: '#000' 
 
    }; 
 

 
    for (var i = $scope.list.paragraphs.length; i < 10; i++) { 
 
    $scope.list.paragraphs.push(defaultParagraph); 
 
    } 
 

 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app="app" ng-controller="MyController"> 
 
    <div class="row" ng-repeat="p in list.paragraphs track by $index" ng-class="isSelectedBoard(p)"> 
 
    <p class="slide-wrap" ng-click="setMasterBoard(p)"> 
 
     {{p.text}} 
 
    </p> 
 
    </div> 
 
</div>

+0

İşte işte, işte cevabınız. Bu aslında benim sürdüğüm şey. – Lex

+0

Teşekkürler ama yinelenen dupes hatası alıyorum, bunu çözmek için html'de ne değiştirmeliyim? – Morpheus

+0

"$ index" parçasına bir parça eklediğimde paragrafları gösteriyorum ama hala – Morpheus

İlgili konular