SORU
20 AĞUSTOS 2012, PAZARTESİ


Özel tür ng-tekrar fonksiyonu

Belirli sayıda kullanıcı tarafından seçilen bağlı olarak görüntüleyen bir çini var. Şimdi gösterilen her ne ise bir tür uygulamak istiyorum.

Aşağıdaki kodu uygulamaya çalıştım (nasıl gettting/ana kart kapsamında bir değeri ayarlayarak) gösterir. OrderBy işlev bir dize alır, çünkü şimdi, bu kartı curOptionValue denilen kapsamında bir değişkeni ayarlamak ve buna göre sıralamak için denedim, ama işe yaramıyor.

Yani asıl soru, ne kadar özel bir tür oluşturmak için işlev?

<div ng-controller="aggViewport" >
<div class="btn-group" >
    <button ng-click="setOption(opt.name)" ng-repeat="opt in optList" class="btn active">{{opt.name}}</button>
</div>
<div id="container" iso-grid width="500px" height="500px">
    <div ng-repeat="card in cards" class="item {{card.class}}" ng-controller="aggCardController">
        <table width="100%">
            <tr>
                <td align="center">
                    <h4>{{card.name}}</h4>
                </td>
            </tr>
            <tr>
                <td align="center"><h2>{{getOption()}}</h2></td>
            </tr>
        </table>        
    </div>
</div>

denetleyici :

module.controller('aggViewport',['$scope','$location',function($scope,$location) {
    $scope.cards = [
        {name: card1, values: {opt1: 9, opt2: 10}},
        {name: card1, values: {opt1: 9, opt2: 10}}
    ];

    $scope.option = "opt1";

    $scope.setOption = function(val){
        $scope.option = val;
    }

}]);

module.controller('aggCardController',['$scope',function($scope){
    $scope.getOption = function(){
        return $scope.card.values[$scope.option];
    }
}]);

CEVAP
20 AĞUSTOS 2012, PAZARTESİ


orderBy aslında filtre parametre olarak sadece bir dize, aynı zamanda bir fonksiyon alabilir. orderBy belgeleri: http://docs.angularjs.org/api/ng.filter:orderBy):

fonksiyon: Alıcı işlevi. Bu işlev sonucu sıralanır <, =, ^ kullanarak . operatör.

Yani, kendi işlevi yazabilirsiniz. Örneğin, eğer karşılaştırmak kartlara göre bir miktar opt1 ve opt2 (bunları uydurduğumu, noktası bir keyfi fonksiyon) olur yazmak denetleyici:

$scope.myValueFunction = function(card) {
   return card.values.opt1   card.values.opt2;
};

ve, şablon: sonra

ng-repeat="card in cards | orderBy:myValueFunction"

Here is the working jsFiddle

Başka bir şey belirtmekte fayda var orderBy sadece bir örnek AngularJS filters eğer ihtiyacınız olan bir çok özel sipariş davranışları yazabilirsiniz kendi filtre (her ne kadar orderBy yeterli olmalı en çok kullandığı durumlarda).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 365multimedia

    365multimedi

    26 ŞUBAT 2009
  • KSI

    KSI

    25 Temmuz 2009
  • Techmoan

    Techmoan

    31 Mayıs 2009