5

मेरे आयन-सामग्री के अंदर दो इनपुट फ़ील्ड हैं और दोनों के पास उनके साथ एक एनजी-मॉडल है। फिर मेरे आयन-फ़ूटर के अंदर मेरे पास एक एनजी-क्लिक है जहां मैं एक फ़ंक्शन कॉल करता हूं और दो एनजी-मॉडल में पास करता हूं।

यह सब ठीक काम करता था जब मेरे पास आयन-सामग्री के अंदर एनजी-क्लिक था, लेकिन जब मैं इसे पाद लेख में ले जाता हूं तो मैं फ़ंक्शन में पास किए गए दो पैरामीटर के लिए अपरिभाषित हो जाता हूं।

तो क्या इसका मतलब यह है कि आयन-सामग्री और आयन-फ़ूटर के पास अलग-अलग $ स्कोप हैं? भले ही वे एक ही फाइल में हैं और एक ही नियंत्रक है ?? pankajparkar द्वारा टिप्पणी में जवाब का

+1

तरह '$ scope.data = {}' और एक गुंजाइश बनाने के लिए:

आप की तरह

$scope.volume = 5 

आदिम रूप में चर का उपयोग कर रहे हैं, तो फिर आप उपयोग करने की आवश्यकता सभी एनजी-मॉडल को रखें जो एचटीएमएल पर बाध्य हैं। इस ऑब्जेक्ट में 'ng-model = "data.model1" ',' ng-model = "data.model2" ' –

+0

@pankajparkar कमाल! एक जादू की तरह काम करता है! लेकिन मैं अभी भी उत्सुक हूं कि यह क्यों काम नहीं कर रहा था? क्या एनजी-मॉडल के मामले में सामग्री और पाद लेख के अलग-अलग स्कोप हैं जहां मेरे नियंत्रक में पूर्वनिर्धारित चर नहीं है? बस उत्सुक। –

+0

मेरा मानना ​​है कि आयन-कंटेंट और आयन-फ़ूटर एक बच्चे का दायरा बनाते हैं .. और जैसा कि आपने अपने नियंत्रक में '$ scope.data = {}' घोषित किया है और इसकी आंतरिक संपत्ति तक पहुंच है .. यह माता-पिता से प्राप्तकर्ता का दायरा करेगा .. क्या मैं जवाब जोड़ सकता हूँ? –

उत्तर

7

मेरा मानना ​​है कि ion-footer & ion-content नए बच्चे गुंजाइश जो वर्तमान से Prototypically inerherit है बनाता है गुंजाइश। आयनिक कोड के नीचे आपको बेहतर उदाहरण मिलेगा कि यह आंतरिक रूप से कैसे काम करता है, scope: true, एक नया बाल क्षेत्र बनाने के लिए ज़िम्मेदार है।

कोड

.directive('ionContent', [ 
    '$parse', 
    '$timeout', 
    '$ionicScrollDelegate', 
    '$controller', 
    '$ionicBind', 
function($parse, $timeout, $ionicScrollDelegate, $controller, $ionicBind) { 
    return { 
    restrict: 'E', 
    replace: true, 
    transclude: true, 
    require: '^?ionNavView', 
    scope: true, //<-- this creates a prototypically inerherited scope 
    template: 
    '<div class="scroll-content">' + 
     '<div class="scroll"></div>' + 
    '</div>', 

आप . एनोटेशन उपयोग करने के लिए आपकी समस्या

जैसे ठीक कर देंगे की जरूरत है।

$scope.data = { 'volume' : 5} 

Angular Prototypal Scope Inheritance

4

स्पष्टीकरण:

आयन सामग्री के निर्देश अपनी नई गुंजाइश है। यह डॉट नोटेशन का उपयोग कर काम करता है

है यही कारण है कि यह एनजी मॉडल के साथ काम करता (महत्वपूर्ण है जब गुंजाइश विरासत के साथ काम कर) = "data.model1

कृपया उल्लेख करने के लिए:

AngularJS documentation on scopes

Egghead video

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