पर टाइपहेड परिणाम के लिए नया डेटा जोड़ें मैं angular bootstrap typeahead
का उपयोग कर रहा हूं। मैं infinite scroll
के लिए एक कार्यक्षमता जोड़ना चाहता हूं, इसके लिए मैंने स्क्रॉल कार्यक्षमता के लिए एक छोटा सा निर्देश जोड़ा है और typeahead
टेम्पलेट में कुछ बदलाव किए हैं, निर्देश के अनुसार निर्देशों को स्क्रॉल करें लेकिन परिणाम अद्यतन होने के बाद टाइपहेड दृश्य को अद्यतन नहीं कर रहा है।स्क्रॉल
मेरे इनपुट की तरह है:
<input type="text" ng-model="variable" placeholder="Search..." typeahead="obj as obj.text for obj in getObject($viewValue)" typeahead-wait-ms="500" />
Typeahead टेम्पलेट:
<ul class="dropdown-menu typeahead-custom" ng-scroll="getObject('{{query}}')" ng-scroll-direction="down" ng-show="isOpen()" ng-style="{top: position.top+'px', left: position.left+'px'}" style="display: block;" role="listbox" aria-hidden="{{!isOpen()}}">
<li ng-repeat="match in matches track by $index" ng-class="{active: isActive($index) }" ng-mouseenter="selectActive($index)" ng-click="selectMatch($index)" role="option" id="{{match.id}}" should-focus="isActive($index)">
<div typeahead-match index="$index" match="match" query="query" template-url="templateUrl"></div>
</li>
</ul>
और GetObject फंक्शन:
$rootScope.lastResult = [];
$rootScope.getObject = function(str) {
return $http({
url: "someUrl",
method: "post",
headers: {'Content-Type': 'application/json'},
data: {str: str, page_limit: 10}
}).then(function(response) {
$.merge($rootScope.lastResult, response.data.data);
return $rootScope.lastResult;
});
};
जब मैं Typeahead इनपुट में कुछ लिखते हैं यह काम करता है ठीक , लेकिन जब मैं टाइपहेड टेम्पलेट में स्क्रॉल करता हूं तो यह एक फंक्शन को कॉल करता है और lastResult
वैरिएबल अपडेट करता है लेकिन टाइपहेड के DOM तत्व को अपडेट नहीं करता है।
कोई मदद? कृपया ....
क्या आपने परिणाम अपडेट के बाद '$ scope.apply()' की कोशिश की है? – Anita
[इस लिंक पर जाएं https://github.com/angular-ui/bootstrap/blob/master/src/typeahead/typeahead.js आप उस फ़ाइल को संपादित करना चाहेंगे – samir