2014-08-29 15 views
7

परिदृश्य
मैं उनके बारे में जानकारी युक्त उपयोगकर्ताओं की एक सरणी है, मुझे क्या करना एक ng-repeat कि एक HTML उपयोगकर्ता कार्ड उत्पन्न करता है एक कस्टम के निर्देश के साथ संयुक्त, प्रत्येक कार्ड रिश्तेदार के दायरे में रखते हुए व्यक्तिगत उपयोगकर्ता के लिए, उपयोगकर्ता मॉडल के अंदर एक वैल्यू है जिसे टेम्पलेट संकलित होने से पहले मुझे एक कस्टम फ़िल्टर के साथ फ़िल्टर करने की आवश्यकता होती है, क्योंकि अगर मैं इसे टेम्पलेट के अंदर करता हूं तो फ़िल्टर करने के लिए समय लगता है टूलटिप तब तक नहीं दिखता है मूल्य तैयार है और ऐसा लगता है कि कुछ काम नहीं कर रहा है।AngularJS - निर्देश नियंत्रक के अंदर उपयोग कस्टम फ़िल्टर

मेरे कोड अब तक

// userCard directive 
angular.module('userCard', []).directive('UserCard', function() { 
    return { 
    restrict: 'EA', 
    templateUrl: 'userCard.tpl.html', 
    scope: { 
     user: '=' 
    }, 
    controller: ['$scope', 'fromNowFilter', function($scope, fromNowFilter) { 

     angular.forEach($scope.user.reminders, function(reminder) { 
      reminder.last_sent = reminder.last_sent === null ? 'No reminder has been sent!' : fromNowFilter(reminder.last_sent); 
     }); 
    }], 
    link: function(scope, element) { 
     // Add the base class to the user card element 
     element.addClass('user-card'); 
    } 
    }; 
}); 


// fromNow custom filter 
angular.module('userCard').filter('fromNow', function() { 
    return function(date) { 
    return moment(date).fromNow(); 
    }; 
}); 


// The error I keep getting 
Unknown provider: fromNowFilterProvider <- fromNowFilter 

उत्तर

21

इंजेक्षन filterprovider की कोशिश करो और अपने फिल्टर को चलाते हैं।

controller: ['$scope', '$filter', function($scope, $filter) { 
     var fromNowFilter = $filter('fromNow'); 
     angular.forEach($scope.user.reminders, function(reminder) { 
      reminder.last_sent = reminder.last_sent === null ? 'No reminder has been sent!' : fromNowFilter(reminder.last_sent); 
     }); 
    }], 
+0

बस ऐसे ही करने की कोशिश की, लेकिन अभी भी, मैं कोणीय [डॉक्स] का अनुसरण करने की कोशिश कर रहा हूँ एक ही त्रुटि मिल रही है (https://docs.angularjs.org/guide/filter), क्या मैं समझता हूँ कि आप की जरूरत है इसे फ़िल्टर करने के लिए 'फ़िल्टर' के साथ अपने फ़िल्टर नाम को पोस्टफिक्स करें। – CupOfJoe

+0

@CupOfJoe हाँ, जो भी काम करना चाहिए था .. क्या आप वाकई अपने ऐप में फ़िल्टर के लिए विज्ञान लोड कर चुके हैं? – PSL

+0

हां, मैंने इसे टेम्पलेट के अंदर परीक्षण किया और यह काम करता है, लेकिन इसे निर्देशक नियंत्रक के अंदर इंजेक्ट करने के लिए नहीं मिलता है। – CupOfJoe

संबंधित मुद्दे