5

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

प्रत्येक दृश्य में, मेरे पास स्क्रीनशॉट 2 में दिखाया गया एक बटन है।

इसके अलावा, मैं controller.js में एक नियंत्रक के साथ उन विचारों जुड़े नीचे दायर:

मैं एक वैश्विक सूची अन्य नियंत्रकों के लिए rootScope का उपयोग कर उस सूची तक पहुँचने के लिए मान बनाया

.controller('MainCtrl', function($scope, $rootScope, $state) { 

     $rootScope.onButtonClick = function (obj) { 
     $rootScope.buttons = []; 
     $rootScope.buttons.push(obj); 
     $state.go('app.completed'); 
    } 
}) 

तो मैं जुड़ा

.controller('CompletedCtrl', function($scope,$rootScope,$state) { 

    $scope.buttons = $rootScope.buttons; 

    $scope.onCompletedButtonClick = function(){ 
    $state.go('app.homepage'); 

    } 

}) 

: पूर्ण क्रिया अन्य नियंत्रक सूची के अंतिम दृश्य प्रदर्शित करने के लिए आवेदन में सभी दबाया बटन देखने के लिए साथ देखने


<span style="color:white">COMPLETED TravelBuddy</span> 

</ion-nav-title> 

<ion-content> 

    <div class="list"> 

    <ion-list> 

    <ion-item ng-repeat="item in buttons"> 
    {{item}}! 
    </ion-item> 

    </ion-list> 

    <label class="item"> 
     <button class="button button-block button-balanced" ng-click="onCompletedButtonClick()">+</button> 
    </label> 
</div> 

</ion-content> 

के बाद मैं अपने मोबाइल एप्लिकेशन को चलाने, मैं सभी प्रदर्शित नहीं कर सकते सूची से धक्का दे दिया आइटम, मैं केवल प्रथम दबाया बटन दिखाई: पूर्ण क्रिया देखने (html फ़ाइल) स्क्रीनशॉट 1 में पूर्ण कार्यों में संदेश। मैं इस समस्या को कैसे हल कर सकता हूं? screenshot1screenshot2

उत्तर

2

आपने लिखा "संदेश उस सूची में जोड़ा जाना चाहिए।"

लेकिन जब भी कोई बटन क्लिक किया जाता है तो आप इसे साफ़ करते हैं।

कदम onButtonClick से बाहर इस लाइन: rootScope.buttons = [];

+0

आपके सुझाव के लिए धन्यवाद :) लेकिन जब मैं नियंत्रक में फ़ंक्शन के बाहर $ rootScope.buttons [] घोषणा करता हूं, तो मुझे एक ही समस्या आती है, फिर मुझे केवल एक संदेश दिखाई देता है बटन जो उस पल में दबाया जाता है। मुझे लगता है कि मैं $ रूटस्कोप के उपयोग के साथ कुछ गलत कर रहा हूं। मेरा लक्ष्य वैश्विक सूची घोषित करना है और प्रत्येक बार जब नियंत्रक काम करता है, तो उस सूची को बटन दबाकर अपडेट किया जाना चाहिए।शायद गलती 'MainCtrl' से उत्पन्न होती है क्योंकि जब इसे ट्रिगर किया जाता है तो सरणी को फिर से शुरू किया जाता है और खाली हो जाता है। आप इसे हल करने के लिए मुझे क्या सुझाव दे सकते हैं? – Gizem

2

कार्य plunker https://plnkr.co/edit/Y2cJrUGYcygvM9i6wKx5?p=preview

<ion-item ng-repeat="item in buttons track by $index"> 
    {{item}}! 
    </ion-item> 

आप डुप्लिकेट पुश करने के लिए चाहते हैं track by $index होना चाहिए। अन्यथा, आप पुश करने के लिए असमर्थ है, एक त्रुटि

कार्य कोड

$rootScope.buttons = []; 
$rootScope.onButtonClick = function (obj) { 
     $rootScope.buttons.push(obj); 
     $state.go('app.completed'); 
    } 

सूची निश्चित रूप से अपडेट हो जाएगा, लेकिन यदि आप ng-repeat="item in buttons track by $index" उपयोग नहीं किया, इसके बाद के संस्करण कोड अगर एक त्रुटि फेंक होगा फेंक दिया जाएगा होगा आप dupes दबाएं। इसलिए, इच्छित परिणाम प्राप्त करने के लिए track by $index जोड़ें

+0

आपके सुझाव के लिए धन्यवाद :) लेकिन जब मैं नियंत्रक में फ़ंक्शन के बाहर $ rootScope.buttons [] घोषणा करता हूं, तो मुझे एक ही समस्या आती है, फिर मुझे उस पल में दबाए गए बटन का केवल एक संदेश दिखाई देता है। मुझे लगता है कि मैं $ रूटस्कोप के उपयोग के साथ कुछ गलत कर रहा हूं। मेरा लक्ष्य वैश्विक सूची घोषित करना है और प्रत्येक बार जब नियंत्रक काम करता है, तो उस सूची को बटन दबाकर अपडेट किया जाना चाहिए। शायद गलती 'MainCtrl' से उत्पन्न होती है क्योंकि जब इसे ट्रिगर किया जाता है तो सरणी को फिर से शुरू किया जाता है और खाली हो जाता है। आप इसे हल करने के लिए मुझे क्या सुझाव दे सकते हैं? @ टाल बुसेल – Gizem

+0

कंसोल की जांच करें। 'Dupes' की त्रुटि हो सकती है। मुझे बताओ कि क्या यह है? –

+0

मैंने आपके द्वारा पेश की गई स्थिरता को जोड़ा, लेकिन मैं इसे हल नहीं कर सकता, शायद समस्या नियंत्रकों और विचारों के बीच संबंधों के बारे में है। मैं वैश्विक सरणी तर्क लागू नहीं कर सका और किसी अन्य पृष्ठ में इसकी सामग्री प्रदर्शित नहीं कर सका। इसके अलावा मैंने consolelogs कमांड के साथ त्रुटियों की जांच की लेकिन कुछ भी नहीं देखा। – Gizem