दो बार नियंत्रक निष्पादित करने वाले AngularJS का संयोजन


532

मैं समझता हूं कि AngularJS दो बार कुछ कोड के माध्यम से चलता है, कभी-कभी और भी, जैसे $watchघटनाओं, लगातार मॉडल राज्यों की जांच आदि।

हालाँकि मेरा कोड:

function MyController($scope, User, local) {

var $scope.User = local.get(); // Get locally save user data

User.get({ id: $scope.User._id.$oid }, function(user) {
  $scope.User = new User(user);
  local.save($scope.User);
});

//...

दो बार निष्पादित किया जाता है, मेरे डीबी में 2 रिकॉर्ड सम्मिलित करता है। मैं स्पष्ट रूप से अभी भी सीख रहा हूं क्योंकि मैं उम्र के लिए इस के खिलाफ अपना सिर पीट रहा हूं!


104
यदि आपका नियंत्रक दो बार चल रहा है, तो जांच लें कि आप अपने कोणीय ऐप को दो बार ( ng-appमैन्युअल बूटस्ट्रैप के साथ और स्वचालित रूप से इसे इनिशियलाइज़ करके) शुरू नहीं कर रहे हैं । यह भी जांचें कि क्या आपने अपने नियंत्रक को कई तत्वों से जोड़ा है (एनजी-नियंत्रक के साथ)।
स्टिवे

7
क्या आप समझा सकते हैं कि "और मैनुअल बूटस्ट्रैप" से आपका क्या मतलब है?
खेल


2
मैंने एक ऐप में डुप्लिकेट कंट्रोलर व्यवहार को देखा जो मुझे विरासत में मिला जब लॉगिंग के साथ एक समस्या का निवारण किया गया था और कंसोल लॉग्स को दो बार देखा गया था। पहले लॉग आग का एक मूल्य था, लेकिन दूसरा अपरिभाषित था। नियंत्रक के लिए HTML एनजी-नियंत्रक निर्देश को हटाने के बाद, दूसरा कंसोल लॉग फायर जो अपरिभाषित था वह चला गया।
डैनियल नलबाख जूल

2
यदि कोणीय.जेएस दो बार जोड़ा जा रहा है, तो यह भी हो सकता है
मोहित

जवाबों:


1050

एप्लिकेशन राउटर ने नेविगेशन को MyControllerऐसा करने के लिए निर्दिष्ट किया :

$routeProvider.when('/',
                   { templateUrl: 'pages/home.html',
                     controller: MyController });

लेकिन मैं भी इसमें था home.html:

<div data-ng-controller="MyController">

यह नियंत्रक को दो बार पचाता है। data-ng-controllerHTML से विशेषता को हटाने से समस्या हल हो गई। वैकल्पिक रूप से, controller:संपत्ति को मार्ग निर्देश से हटाया जा सकता था।

टैब्ड नेविगेशन का उपयोग करते समय यह समस्या भी प्रकट होती है। उदाहरण के लिए, app.jsइसमें शामिल हो सकते हैं:

  .state('tab.reports', {
    url: '/reports',
    views: {
      'tab-reports': {
        templateUrl: 'templates/tab-reports.html',
        controller: 'ReportsCtrl'
      }
    }
  })

संबंधित रिपोर्ट टैब HTML सदृश हो सकती है:

<ion-view view-title="Reports">
  <ion-content ng-controller="ReportsCtrl">

इससे नियंत्रक को दो बार चलाने में भी मदद मिलेगी।


4
यह इस छोड़ने के लिए सबसे अच्छी जगह है, मेरे कोड में कंघी के कई घंटे के बाद लगता है, मुझसे पूछते हैं कि कैसे करते हैं, लेकिन जब मैं बदलने <div ng-view>...के लिए <div class="ng-view">..., यह समस्या मेरे लिए बंद कर दिया। मैं इस व्यवहार से पहले नहीं आया, लेकिन शायद किसी और के पास भी है।
फिक्स


1
क्या मार्ग में एक नियंत्रक घोषित करने के लिए कोई तरीका है, और फिर html पृष्ठ पर एक अन्य नियंत्रक? कैसे काम करता है और कोई संघर्ष दोनों सुनिश्चित करने के लिए? या यह अनावश्यक है?
विचारक

1
यह शायद अनावश्यक है, शायद इसके बजाय कुछ निर्देशों का उपयोग करें?
ग्रेग

2
@ इसे HTML में छोड़ने से लचीलापन कम हो जाता है। आप अपने टेम्पलेट को सीधे एक नियंत्रक से बांध रहे हैं। आप रूटिंग के साथ सिंटैक्स को सिंटैक्स के रूप में उपयोग कर सकते हैं।
ग्रेग

127

AngularJS डॉक्स - ngController
ध्यान दें कि आप $ मार्ग सेवा के माध्यम से मार्ग परिभाषा में इसे घोषित करके नियंत्रकों को डोम से संलग्न कर सकते हैं। एक सामान्य गलती टेम्पलेट में एनजी-नियंत्रक का उपयोग करके फिर से नियंत्रक घोषित करना है। यह नियंत्रक को संलग्न करने और दो बार निष्पादित करने का कारण होगा।

जब आप ng-viewनिर्देश के साथ ngRoute का उपयोग करते हैं , तो नियंत्रक डिफ़ॉल्ट रूप से उस डोम तत्व से जुड़ जाता है (या यूआई-राउटर का उपयोग करने पर ui-view)। इसलिए आपको इसे फिर से टेम्पलेट में संलग्न करने की आवश्यकता नहीं होगी।


अनुलोम विलोम। लेखक ने पहले ही जवाब देते हुए कहा। पृष्ठ के अंत तक बस नीचे स्क्रॉल करें।
इगा

4
मुझे यह भ्रामक लगा कि लेखक ने इसे साइड नोट के रूप में रखा है जबकि यह स्पष्ट रूप से इसे करने का सही तरीका है। डॉक्स से उद्धरण प्रश्न का स्पष्ट उत्तर देता है। और यकीन है कि कई डॉक्टर के लिए लिंक मिल जाएगा सहायक।
shxfee

इसने नियंत्रक की मेरी समस्या को दो बार निष्पादित किया। मैंने केवल टेम्पलेट में एनजी-नियंत्रक को हटा दिया था और अब केवल एक बार निष्पादित किया जा रहा है।
Torbenrudgaard

70

मैं बस इसके माध्यम से चला गया, लेकिन मुद्दा स्वीकृत उत्तर से अलग था। मैं वास्तव में इसे अपने भविष्य के लिए यहां छोड़ रहा हूं, इसे ठीक करने के लिए मैंने जो कदम उठाए, उन्हें शामिल करना।

  1. अनावश्यक नियंत्रक घोषणाओं को हटा दें
  2. मार्गों में ट्रेलिंग स्लैश की जाँच करें
  3. के लिए जाँचे ng-ifs
  4. किसी भी अनावश्यक रैपिंग ng-viewकॉल के लिए जाँच करें (मैं गलती से छोड़ दिया ng-viewथा कि मेरे वास्तविक लपेट रहा था ng-view। यह मेरे मेरे कॉल करने के लिए तीन कॉल के परिणामस्वरूप।)
  5. यदि आप रेल पर हैं, तो आपको turbolinksअपनी application.jsफ़ाइल से मणि को हटा देना चाहिए । मुझे उसको खोजने में पूरा दिन बर्बाद हो गया। यहां उत्तर मिला ।
  6. एनजी-ऐप और बूटस्ट्रैप के साथ ऐप को दो बार शुरू करना। दो बार एंगुलरजेएस निष्पादित नियंत्रक का संयोजन
  7. निर्देश के 'लिंक'-फंक्शन में पूरे तत्व पर $ संकलित का उपयोग करते समय, जिसका अपना नियंत्रक भी परिभाषित किया गया है और एनजी-क्लिक आदि के माध्यम से टेम्पलेट में इस नियंत्रक के कॉलबैक का उपयोग करता है

5. यदि आप रेल पर हैं, तो आपको turbolinksअपनी application.jsफ़ाइल से मणि निकालनी चाहिए । जिसने मुझे पागल बना दिया, उस की खोज में पूरा दिन बर्बाद कर दिया। असली दर्द। यहां
वीं

6. एनजी-ऐप और बूटस्ट्रैप के साथ ऐप को दो बार शुरू करना। stackoverflow.com/questions/15535336/…
thadeuszlay

1
धन्यवाद । मेरे लिए, जो चीज काम करती थी वह मार्ग के अंत में स्लैश डालती थी
प्रमोद शर्मा

धन्यवाद एक लाख, इस पर मेरा सिर तोड़ रहा था। 7 नंबर होने के नाते समाप्त हो गया! (हमेशा अंतिम एक ...)।
रब्बी शुकी गुर

वाह, मानो या न मानो, मैं आपकी सूची में सब कुछ के माध्यम से चला गया , और मैं अभी भी समस्या है।
जैकब स्टैम

14

बस एक और मामला जोड़ना चाहते हैं जब नियंत्रक दो बार init कर सकता है (यह कोणीय के लिए वास्तविक है। 1.3.1)

<div ng-if="loading">Loading...</div>
<div ng-if="!loading">
    <div ng-view></div>
</div>

इस मामले में $ मार्ग। पहले से ही सेट किया जाएगा जब एनजी-व्यू इनिट होगा। यही कारण है कि दोहरी शुरुआत।

इसे ठीक करने के लिए बस एनजी-अगर एनजी-शो / एनजी-छिपाने के लिए बदलें और सभी अच्छी तरह से काम करेंगे।


इससे मुझे मदद मिली, मैं एनजी-शो के बजाय एनजी-शो / एनजी-छिपाने का उपयोग कर रहा था, अगर मेरे पास दो एनजी-व्यू थे, तो यह कोई समस्या नहीं है, लेकिन एनजी-शो / एनजी-छिपाने के दौरान एनजी-अगर अक्षम नहीं है
दिमित्री कोपरिवा

अनेक अनेक धन्यवाद। इस दृष्टिकोण ने मेरी समस्या हल कर दी। एक ही ui-viewबार दो बार कॉल कर रहा था जिसे कंट्रोलर ने दो बार कॉल किया ।
कर्लीग्रेई

7

संदर्भ के लिए जोड़ना चाहेंगे:

पेज पर चलने वाले एक निर्देश में नियंत्रक को संदर्भित करके डबल नियंत्रक कोड निष्पादन भी हो सकता है।

जैसे

return {

            restrict: 'A',
            controller: 'myController',
            link: function ($scope) { ....

जब आप अपने HTML में ng-नियंत्रक = "myController" भी रखते हैं


इसके लिए क्या उपाय है?
सागर भोसले

1
केवल एक या दूसरे का उपयोग करें।
gb2d

7

कोणीय 1.3+ के साथ कोणीय-यूआई-राउटर का उपयोग करते समय, मार्ग संक्रमण पर दो बार रेंडरिंग विचारों के बारे में एक समस्या थी । इसके परिणामस्वरूप नियंत्रकों को दो बार क्रियान्वित किया गया था। किसी भी प्रस्तावित समाधान ने मेरे लिए काम नहीं किया।

हालाँकि, angular-ui-router0.2.11 से 0.2.13 तक अद्यतन करने से मेरे लिए समस्या हल हो गई।


6

मैंने इस मुद्दे पर बिट्स को अपना ऐप और उसकी सभी निर्भरताएँ बताई (विवरण यहाँ: AngularJS ऐप ने दो बार पहल की (सामान्य समाधानों की कोशिश की ..) )

और अंत में, यह सभी बतरंग क्रोम प्लगइन की गलती थी।

में संकल्प इस उत्तर :

मैं किसी की सूची पर पहली बात की जोरदार सिफारिश करूंगा कि कोड बदलने से पहले इसे प्रति पोस्ट में अक्षम कर दिया जाए।


यह मेरा मुद्दा था। प्लगइन आपके कोणीय ऐप का दोहरा उदाहरण चलाता है ताकि यह गुंजाइश जानकारी प्रदान कर सके (न जाने क्यों यह प्रारंभिक उदाहरण का उपयोग नहीं कर सकता है)।
rgdigital

मुझे खुशी है कि इसने मदद की, मुझे यह पता लगाने में एक लूंग टाइम लगा।
लुईस

5

यदि आप जानते हैं कि आपका नियंत्रक अनजाने में एक से अधिक बार निष्पादन कर रहा है, तो अपनी फ़ाइलों के माध्यम से एक खोज को आक्रामक नियंत्रक के नाम के लिए आज़माएँ, उदा: सभी फ़ाइलों के माध्यम से खोज: MyController। संभवतः यह किसी अन्य HTML / js फ़ाइल में कॉपी-पेस्ट हो गया और आप इसे बदलना भूल गए जब आपको उन धारावाहिकों / नियंत्रकों का विकास या उपयोग करना पड़ा। स्रोत: मैंने यह गलती की


5

मुझे एक ही समस्या थी, एक साधारण ऐप में (बिना रूटिंग और एक साधारण एनजी-कंट्रोलर संदर्भ के) और मेरे नियंत्रक के निर्माता ने दो बार चलाया। अंत में, मुझे पता चला कि मेरी समस्या मेरे रेजर दृश्य में मेरे AngularJS एप्लिकेशन को ऑटो-बूटस्ट्रैप करने के लिए निम्नलिखित घोषणा थी

<html ng-app="mTest1">

मैंने इसे मैन्युअल रूप से angular.bootstrap का उपयोग करके बूटस्ट्रैप किया है

angular.bootstrap(document, [this.app.name]);

इसलिए उनमें से एक को हटाना, मेरे लिए काम कर गया।


4

कुछ मामलों में आपका निर्देश दो बार चलता है जब आप बस इस तरह से निर्देश को बंद नहीं करते हैं:

<my-directive>Some content<my-directive>

यह आपके निर्देश को दो बार चलाएगा। इसके अलावा एक और मामला है जब आपका निर्देश दो बार चलता है:

सुनिश्चित करें कि आप अपने निर्देश को अपने index.html दोहों में शामिल नहीं कर रहे हैं !


यदि आप यूआई-राउटर का उपयोग कर रहे हैं, तो एक वर्ग के अंदर यूआई-व्यू के निर्देश के नाम को निर्दिष्ट करने से दोहरा निष्पादन होता है। इसे E या <ui-view> </ ui-view> में बदलकर दोहरी निष्पादन समस्या को ठीक करता है।
16:GS पर स्टीवजीएसडी

2

एंगुलरजेएस 1.4 आरसी बिल्ड के साथ इस समस्या पर मेरे सिर को खरोंच कर दिया, फिर महसूस किया कि उपरोक्त में से कोई भी उत्तर लागू नहीं हुआ था क्योंकि यह इस लेखन के समय एंगुलर 1.4 और कोणीय 2 के लिए नए राउटर लाइब्रेरी से उत्पन्न हुआ था । इसलिए, मैं यहां उन लोगों के लिए एक नोट छोड़ रहा हूं जो नए कोणीय मार्ग पुस्तकालय का उपयोग कर रहे होंगे।

मूल रूप से अगर एक html पृष्ठ में ng-viewportआपके ऐप के कुछ हिस्सों को लोड करने के लिए एक निर्देश होता है, तो इसमें निर्दिष्ट हाइपरलिंक पर क्लिक ng-linkकरने से संबंधित घटक के लक्ष्य नियंत्रक को दो बार लोड किया जाएगा। सूक्ष्म अंतर यह है कि, यदि ब्राउज़र ने पहले ही लक्ष्य नियंत्रक लोड कर दिया है, तो उसी हाइपरलिंक को फिर से क्लिक करके केवल एक बार नियंत्रक को आमंत्रित करेगा।

अभी तक एक व्यवहार्य नहीं मिला है, हालांकि मेरा मानना ​​है कि यह व्यवहार शंकुक्सु द्वारा उठाए गए अवलोकन के अनुरूप है , और उम्मीद है कि इस मुद्दे को भविष्य के नए पुस्तकालय के निर्माण और एंगुलरजेएस 1.4 रिलीज के साथ हल किया जाएगा।


2

मेरे मामले में, मुझे एक ही नियंत्रक का उपयोग करते हुए दो विचार मिले।

$stateProvider.state('app', {
  url: '',
  views: {
    "viewOne@app": {
      controller: 'CtrlOne as CtrlOne',
      templateUrl: 'main/one.tpl.html'
    },
    "viewTwo@app": {
      controller: 'CtrlOne as CtrlOne',
      templateUrl: 'main/two.tpl.html'
    }
  }
});

2

मैं जिस समस्या का सामना कर रहा हूं वह मूर्त हो सकती है, लेकिन चूंकि गुग्लिंग ने मुझे इस सवाल पर लाया, इसलिए यह उचित हो सकता है। समस्या यूआई राउटर का उपयोग करते समय मेरे लिए अपने बदसूरत सिर को उठाती है, लेकिन केवल जब मैं पृष्ठ को ब्राउज़र रीफ्रेश बटन के साथ ताज़ा करने का प्रयास करता हूं। एप्लिकेशन को एक माता-पिता अमूर्त राज्य के साथ यूआई राउटर का उपयोग करता है, और फिर बच्चे माता-पिता से कहता है। एप्लिकेशन run()फ़ंक्शन पर, एक $state.go('...child-state...')कमांड है। मूल स्थिति एक का उपयोग करती है resolve, और पहले मुझे लगा कि शायद एक बच्चा नियंत्रक दो बार निष्पादित कर रहा है।

URL को हैश किए जाने से पहले सब कुछ ठीक है।
www.someoldwebaddress.org

फिर एक बार यूआर राउटर द्वारा यूआरएल को संशोधित किया गया है,
www.someoldwebaddress.org#/childstate

... और फिर जब मैं पृष्ठ को ब्राउज़र रिफ्रेश बटन के साथ ताज़ा करता हूं , तो $stateChangeStartदो बार आग लग जाती है, और हर बार इंगित करता है childstate

resolveमाता-पिता स्थिति पर क्या दो बार फायरिंग कर रहा है।

शायद यह एक कीचड़ है; इसकी परवाह किए बिना, यह मेरे लिए समस्या को खत्म करने के लिए प्रकट होता है: कोड के क्षेत्र में जहां $stateProviderपहली बार आह्वान किया गया है, पहले यह देखने के लिए जांचें कि क्या window.location.hash एक रिक्त स्ट्रिंग है। अगर यह है, सब अच्छा है; यदि यह नहीं है, तो window.location.hash को खाली स्ट्रिंग पर सेट करें । तब ऐसा लगता है कि $stateकेवल दो बार के बजाय एक बार कहीं जाने की कोशिश करता है।

इसके अलावा, अगर आप ऐप के डिफॉल्ट पर भरोसा नहीं करना चाहते हैं runऔर state.go(...), आप हैश वैल्यू पर कब्जा करने की कोशिश कर सकते हैं और हैश वैल्यू का इस्तेमाल करके बच्चे की स्थिति का पता लगा सकते हैं, जो आप पेज रिफ्रेश करने से पहले थे, और अपने क्षेत्र में एक शर्त जोड़ें कोड जहां आप सेट करें state.go(...)


1

मेरे मामले में यह मेरे द्वारा उपयोग किए गए url पैटर्न के कारण था

मेरा url / ui / प्रोजेक्ट /: पैरामीटर 1 /: पैरामीटर 2 जैसा था।

मुझे राज्य परिवर्तन के सभी मामलों में paramerter2 की आवश्यकता नहीं थी। ऐसे मामलों में जहां मुझे दूसरे पैरामीटर की आवश्यकता नहीं थी, मेरा यूआरएल / यूआई / प्रोजेक्ट /: पैरामीटर 1 / जैसा होगा। और इसलिए जब भी मेरे पास कोई राज्य परिवर्तन होता है तो मैं अपने नियंत्रक को दो बार ताज़ा करूंगा।

समाधान पैरामीटर 2 को रिक्त स्ट्रिंग के रूप में सेट करने और राज्य परिवर्तन करने के लिए था।


1

मैं एक अलग कारण के लिए यह दोहरी आरंभीकरण हुआ है। अपने आवेदन में कुछ मार्ग-परिवर्तन के लिए मैं स्क्रॉलिंग को पृष्ठ के शीर्ष के पास ले जाना चाहता था (उदाहरण के लिए पृष्ठबद्ध खोज परिणामों में ... अगला क्लिक करने पर आपको पृष्ठ 2 के शीर्ष पर ले जाना चाहिए)।

मैंने ऐसा एक श्रोता को जोड़कर किया है, $rootScope $on $viewContentLoadedजिसे (कुछ शर्तों के आधार पर) निष्पादित किया गया है

$location.hash('top');

जाने-अनजाने में यह मेरे मार्गों का पुनर्मूल्यांकन कर रहा था और नियंत्रकों को फिर से संगठित किया जा रहा था



1

मेरे मामले में एक अलग नाम पर नियंत्रक का नाम बदलने से समस्या हल हो गई।

" कोणीय-यूआई-ट्री " मॉड्यूल के साथ नियंत्रक नामों का एक संघर्ष था : मैंने अपने नियंत्रक को " कैटलॉगट्रीकंट्रोलर " से " ट्रीकंट्रोलर " नाम दिया और फिर इस नियंत्रक को उस पृष्ठ पर दो बार शुरू किया जाना शुरू हो जाता है, जहां " यूआई-ट्री " निर्देश का उपयोग किया जाता है। यह निर्देश " ट्रीकंट्रोलर " नाम के नियंत्रक का उपयोग करता है ।


1

नियंत्रक सिंटैक्स का उपयोग करने वालों के लिए, बस $ रूप्रोवाइडर में नियंत्रक लेबल को निम्नानुसार घोषित करें:

$routeprovider
        .when('/link', {
            templateUrl: 'templateUrl',
            controller: 'UploadsController as ctrl'
        })

या

$routeprovider
        .when('/link', {
            templateUrl: 'templateUrl',
            controller: 'UploadsController'
            controllerAs: 'ctrl'
        })

$ रूपेप्रोइडर घोषित करने के बाद, नियंत्रक को दृश्य में आपूर्ति न करें। इसके बजाय दृश्य में लेबल का उपयोग करें।


0

मुझे भी यही समस्या थी और मैंने सभी उत्तरों को आजमाने के बाद आखिरकार पाया कि मेरे विचार में एक निर्देश था जो एक ही नियंत्रक से जुड़ा था।

APP.directive('MyDirective', function() {
  return {
    restrict: 'AE',
    scope: {},
    templateUrl: '../views/quiz.html',
    controller: 'ShowClassController'
}
});

निर्देश को हटाने के बाद नियंत्रक को दो बार बुलाया जाना बंद हो गया। अब मेरा सवाल यह है कि इस समस्या के बिना नियंत्रक दायरे से जुड़े इस निर्देश का उपयोग कैसे किया जा सकता है?


0

मैंने बस मेरा हल किया, जो वास्तव में काफी निराशाजनक था। इसका आयनिक हाइब्रिड ऐप, मैंने यूआई-राउटर v0.2.13 का उपयोग किया है। मेरे मामले में एक epub Reader है (epub.js का उपयोग करके) जो अपनी पुस्तकों के पुस्तकालय में नेविगेट करने और किसी अन्य पुस्तक का चयन करने के बाद लगातार "कोई दस्तावेज़ नहीं मिला" रिपोर्ट कर रहा था। जब मैंने पुनः लोड किया तो ब्राउज़र बुक पूरी तरह से प्रस्तुत की जा रही थी, लेकिन जब मैंने दूसरी पुस्तक चुनी तो फिर से वही समस्या आ गई।

मेरा हल बहुत सरल था। मैंने अभी अपने में reload:trueसे निकाल दिया$state.go("app.reader", { fileName: fn, reload: true });LibraryController


0

मेरे पास एक ही मुद्दा है angular-route@1.6.7, और यह क्योंकि रेगेक्स मार्ग के अंत में अतिरिक्त स्लैश :

.when('/goods/publish/:classId/', option)

सेवा

.when('/goods/publish/:classId', option)

और यह सही ढंग से काम करता है।


0

मेरे मामले को यहीं जोड़कर:

मैं के साथ कोणीय-यूआई-राउटर का उपयोग कर रहा था$state.go('new_state', {foo: "foo@bar"})

एक बार जब मैंने पैरामीटर में एनकोडाउरीकोम्पोनेंट को जोड़ा , तो समस्या दूर हो गई थी $state.go('new_state', {foo: encodeURIComponent("foo@bar")}):।

क्या हुआ? पैरामीटर मान में "@" URL में अनुमति नहीं है। परिणामस्वरूप, कोणीय-यूई-राउटर ने दो बार मेरा नियंत्रक बनाया: पहली रचना के दौरान यह मूल "फू @ बार" से गुजरता था, दूसरी रचना के दौरान यह एन्कोडेड संस्करण "फू% 40bar" से गुजरता था। एक बार जब मैंने ऊपर दिखाए अनुसार पैरामीटर को स्पष्ट रूप से एन्कोड किया, तो समस्या दूर हो गई।


-1

मुझे लगा कि मेरा दो बार कॉल हो रहा है, क्योंकि मैं अपने html से दो बार विधि कह रहा था।

`<form class="form-horizontal" name="x" ng-submit="findX() novalidate >
 <input type="text"....>
 <input type="text"....>
 <input type="text"....>
 <button type="submit" class="btn btn-sm btn-primary" ng-click="findX()"
</form>`

हाइलाइट किए गए सेक्शन में दो बार findX () होने का कारण था। आशा है कि यह किसी की मदद करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.