የላቀ ቅጽበታዊነት

የጎን ኣሞሌ 11.5

የተተረጎመው መጠን

በዚህ ምዕራፍ:

  • የሚትዩር ቅጽበታዊ የዊሂብ ምንጮችን መፍጠር ይማሩ።
  • መሰረታዊ የሆነ ኣንድ ቅጽበታዊ የዊሂብ ምንጭ ይፍጠሩ።
  • ዴፕስ(Deps) ከኣንጉላርጄኤስ (AngularJS) ጋር እንዴት እንደሚነፃፀሩ ይመልከቱ።
  • ////

    ////

    ////

    ////

    currentLikeCount = 0;
    Meteor.setInterval(function() {
      var postId;
      if (Meteor.user() && postId = Session.get('currentPostId')) {
        getFacebookLikeCount(Meteor.user(), Posts.find(postId), 
          function(err, count) {
            if (!err)
              currentLikeCount = count;
          });
      }
    }, 5 * 1000);
    

    ////

    Template.postItem.likeCount = function() {
      return currentLikeCount;
    }
    

    ////

    ቅጽበታዊነትን መከታተል፡ ኮምፒውቴሽንስ

    ////

    ////

    ////

    ኣንድን ተላዋዋጭ ወደ ቅጽበታዊ ተግባር መለወጥ

    ////

    var _currentLikeCount = 0;
    var _currentLikeCountListeners = new Deps.Dependency();
    
    currentLikeCount = function() {
      _currentLikeCountListeners.depend();
      return _currentLikeCount;
    }
    
    Meteor.setInterval(function() {
      var postId;
      if (Meteor.user() && postId = Session.get('currentPostId')) {
        getFacebookLikeCount(Meteor.user(), Posts.find(postId), 
          function(err, count) {
            if (!err && count !== _currentLikeCount) {
              _currentLikeCount = count;
              _currentLikeCountListeners.changed();
            }
          });
      }
    }, 5 * 1000);
    

    ////

    ////

    የቅንብር ደንብ ኮምፒውቴሽን እና ዳግም-መሳልን መቆጣጠር

    ////

    ////

    ////

    ////

    ////

    ////

    ዴፕስ እና ከኣንጉላር ሲነፃፀሩ

    ////

    ////

    ////

    ////

    ////

    ////

    $rootScope.$watch('currentLikeCount', function(likeCount) {
      console.log('Current like count is ' + likeCount);
    });
    

    ////

    ////

    ////

    ////

    Meteor.setInterval(function() {
      getFacebookLikeCount(Meteor.user(), Posts.find(postId), 
        function(err, count) {
          if (!err) {
            $rootScope.currentLikeCount = count;
            $rootScope.$apply();
          }
        });
    }, 5 * 1000);
    

    ////