javascript - مزايا - واجهة المستخدم في نظام التشغيل



كيفية التخزين المؤقت أنجولارجس واجهة المستخدم الرسومية العزم؟ (1)

وأود أن مجرد نقله في خدمة وذاكرة التخزين المؤقت عليه وحقنه في العزم.

app.service('SourceService',['$http', function(){ 
  var _cachedPromise;
  this.getSources = function(){
     return _cachedPromise || _cachedPromise = $http.get('/sources').then(function(result){
          //return result.data.sources //If the data is already an object which most possibly is just do 
          return JSON.parse(result.data.sources);
      });
  }
}]);

الآن في العزم القيام به: -

 resolve: {
      sources: function(SourceService) {
        return SourceService.getSources();
      }
    }

أو مجرد القيام بذلك في العزم نفسه.

لست متأكدا إذا كان هذا هو أفضل وسيلة لذكر السؤال ولكن أريد فقط العزيمة لتشغيل مرة واحدة عندما أغير الدولة. وذلك لأن لدي علامات تبويب متعددة وأحتاج إلى استخدام مكالمة أجاكس للحصول على بيانات القالب. لذلك عند النقر على علامة التبويب، وسوف تخزن تلك المعلومات في نطاق $. ولكن لا أريد الاستمرار في إجراء هذه المكالمة إذا كان المستخدم يتحول إلى علامة تبويب أخرى ويعود.

هذا هو ما يبدو لي $ ستاتبروفيدر في الوقت الراهن:

  state('something', {
    views: {
      'filters.form': {
        templateUrl: '<%= asset_path('my_path.html') %>',
        controller: function($scope, sources){
          $scope.sources = sources;
        }
      }
    },
    resolve: {
      sources: function($http) {
        return $http.get('/sources').success(function(data){
          return JSON.parse(data.sources);
        });
      }
    }
  })

الذي يعمل كبيرة ولكن في كل مرة أنا تبديل علامات التبويب والعودة، فإنه يجعل مكالمة أخرى التي لا أريد.

حاولت أن تمر في نطاق $ في العزم وفحص لمعرفة ما إذا كان $ domain.sources موجودة قبل أن أدلي مكالمة أجاكس ولكن هذا لم ينجح.





angular-ui-router