2014-10-01 1 views
0

Я хочу, чтобы пользователи голосовали внутри файла cookie, проблема в том, что внутри ng-repeat у меня есть значение, называемое session.upVoteCount. Но он должен быть отдельным значением для каждого элемента списка событий. Можно ли хранить каждый upVoteCount отдельно, а затем снова извлекать их отдельно?ng-repeat store отдельные значения

<li ng-repeat="session in event.sessions | filter:query | orderBy:sortorder" class="span11"> 
       <div class="row session"> 
        <div class="col-sm-1 well votingWidget"> 
         <div class="votingButton" ng-click="upVoteSession(session)"> 
          <span class="glyphicon glyphicon-arrow-up"></span> 
         </div> 
         <div class="badge badge-inverse"> 
          <div>{{session.upVoteCount}}</div> 
         </div> 
         <div class="votingButton" ng-click="downVoteSession(session)"> 
          <span class="glyphicon glyphicon-arrow-down"></span> 
         </div> 
        </div> 

       </div> 
      </li> 

и в мой контроллер у меня есть это:

$scope.upVoteSession = function(session) { 
     session.upVoteCount++;    
    }; 

$scope.downVoteSession = function(session) { 
     session.upVoteCount--; 
    }; 
+0

вы получаете ошибки? укажите jsfiddle (http://jsfiddle.net/) –

ответ

0

Во-первых, я не рекомендую использовать термин «сеанс», а «голоса». Однако это ваш звонок.

Я упростить проблему в этом примере

http://plnkr.co/edit/l7tQRbuOtEDJetY5eTsf?p=preview

Javascript:

function MyCtrl($scope) { 
    $scope.votes = {}; 
    $scope.vote = function(key, val) { 
    $scope.votes[key] = $scope.votes[key] || 0; 
    $scope.votes[key]+= val;    
    }; 
} 

Html:

<li ng-repeat="no in [1,2,3,4,5]"> 
    {{no}} : {{votes[no]}} <br/> 
    <a href="" ng-click="vote(no, +1)">upvote</a> 
    <a href="" ng-click="vote(no, -1)">downvote</a> 
</li> 
0

Привет, ребята, я решил это сам, я не мог получить его для работы с JSfiddle, поэтому я загрузил все это. Нажмите на server.bat и браузер на localhost: 8000/eventdetails.html, и вы увидите, что он работает.

https://mega.co.nz/#!1d9yiYiA!zTzdztLAmhVDVYOvvVLINETI2bo_WjxCBteWYm2VUKc

контроллер:

eventsApp.controller('EventController', 
    function EventController($scope, $cookieStore, eventData) { 
     $scope.sortorder = 'name'; 
     var ape = eventData.getEvent(); 
     ape.then(function (banana) { 
      $scope.event = banana; 
      angular.forEach(banana.sessions, function (value, key) { 
       var storecookie = ($cookieStore.get(value.name)); 
       if (typeof storecookie !== "undefined") { 
        value.upVoteCount = storecookie; 
       } 
      }); 
     }); 
     $scope.upVoteSession = function (session) { 
      session.upVoteCount++; 
      $cookieStore.put(session.name, session.upVoteCount); 
     }; 

     $scope.downVoteSession = function (session) { 
      session.upVoteCount--; 
      $cookieStore.put(session.name, session.upVoteCount); 
     }; 
    } 
); 

 Смежные вопросы

  • Нет связанных вопросов^_^