javascript - passing parameters to filter function defined on a controller -
कहें कि मेरे पास एक (अत्यंत सरलीकृत) नियंत्रक है, जैसे कि परिभाषित:
app.controller ('MyController', ['$ scope', फ़ंक्शन (क्षेत्र) {सूची = [1,2,3,4,5] scope.filterFunction = समारोह (आइटम, ऊपरी बाउंड) {यदि (आइटम & lt; ऊपरी बाउंड) {वापसी ( आइटम);}}}]); मैं टेम्पलेट के माध्यम से ऊपरी बाउंड के लिए एक मान कैसे पास कर सकता हूं?
& lt; div ng-repeat = "सूची में सूची | फ़िल्टर: फ़िल्टरफंक्शन" & gt ; {{आइटम}} & lt; / div & gt; मुझे पता है कि यदि आप एक समर्पित फिल्टर रोल करते हैं, तो आप filterName: arg1: arg2 .... के साथ पैरामीटर कर सकते हैं इस दृष्टिकोण के साथ एक समान व्यवहार को प्राप्त करने का कोई तरीका? या वैकल्पिक रूप से, क्या नियंत्रक फ़ंक्शन के दायरे तक पहुंचने का कोई तरीका है?
अगर आप ' टी एक समर्पित फिल्टर बनाने के लिए आप गुंजाइश पर फ़ंक्शन बना सकते हैं जो फ़िल्टर किए गए आइटम लौटाता है। जैसे:
app.controller ('myController', ['$ scope', फ़ंक्शन (क्षेत्र) {scope.list = [1,2,3,4,5]; गुंजाइश ऊपरी बाउंड = 3; स्कोप.फिलटरफंक्शन = समारोह (सूची, ऊपरी बाउंड) {var rval = []; के लिए (var i = 0, l = list.length; i & lt; l; i ++) {if (सूची [i] & lt; ऊपरी बाउंड) {rval.push (सूची [i])}} रिटर्न रैवल;}; // या scope.filteredList = function () {var rval = []; के लिए (var i = 0, l = scope.list.length ; i & lt; l; i ++) {यदि (स्कोप। सूची [i] & lt; scope.upperbound) {rval.push (scope.list [i])}} रिटर्न रैवल;};}]); और उसके बाद उस फ़ंक्शन पर बाध्य करें:
& lt; ul & gt; & Lt; li ng- दोहराने = "फिल्टर फंक्शन में सूची (सूची, ऊपरी बाउंड)" & gt; {{आइटम}} & lt; / li & gt; & Lt; / ul & gt; या <पूर्व> & lt; ul & gt; & Lt; li एनजी-दोहराने = "आइटम में फ़िल्टर किए गए सूची ()" & gt; {{आइटम}} & lt; / li & gt; & Lt; / ul & gt;
Comments
Post a Comment