दिलचस्प पोस्ट
बाइनरी कॉलेशन का क्या प्रभाव पड़ता है? मेवेन और सिस्टम स्कोप में जार जोड़ना मैं कैसे जांचूं अगर एक तत्व jQuery में छुपा हुआ है? एंड्रॉइड प्रोजेक्ट एक्लिप्स में अन्य प्रोजेक्ट का संदर्भ देने में असमर्थ है पैराशॉट ऑब्जेक्ट के लिए मान प्रकार सरणी को परिवर्तित नहीं किया जा सकता सी # में इनलाइन कार्य? कैसे एक बालक तत्व के लिए अस्पष्टता रद्द करने के लिए? एमुलेटर में Google Play सेवाएं, Google Plus लॉग इन बटन आदि को कार्यान्वित करना कैसे RichTextBox से पाठ का चयन करें और फिर इसे रंग दें? ADO.NET में आउटपुट पैरामीटर मान प्राप्त करें जावा में सिंगलटन क्लास एंड्रॉइड एक्सएमएल डीओएम पार्सिंग में समान नाम टैग कैसे पार्स करना है आईओएस 10 पर स्टार्टअप के दौरान कॉर्डोवा ऐप फांसी लिनक्स / मोनो पर सर्विस स्टैक चलाने का सबसे अच्छा तरीका क्या है? लिनक्स में पीएचपी का उपयोग करके वर्ड दस्तावेज़ बनाएँ

Ng- शामिल करते समय गुंजाइश खोना

मेरे पास इस मॉड्यूल मार्ग हैं:

var mainModule = angular.module('lpConnect', []). config(['$routeProvider', function ($routeProvider) { $routeProvider. when('/home', {template:'views/home.html', controller:HomeCtrl}). when('/admin', {template:'views/admin.html', controller:AdminCtrl}). otherwise({redirectTo:'/connect'}); }]); 

होम एचटीएमएल:

 <div ng-include src="views.partial1"></div> 

partial1 HTML:

 <form ng-submit="addLine()"> <input type="text" ng-model="lineText" size="30" placeholder="Type your message here"> </form> 

HomeCtrl :

 function HomeCtrl($scope, $location, $window, $http, Common) { ... $scope.views = { partial1:"views/partial1.html" }; $scope.addLine = function () { $scope.chat.addLine($scope.lineText); $scope.lines.push({text:$scope.lineText}); $scope.lineText = ""; }; ... } 

addLine फ़ंक्शन $scope.lineText में, यह ng-controller="HomeCtrl" को partial1.html ng-controller="HomeCtrl" जोड़कर हल किया जा सकता है, हालांकि यह नियंत्रक को दो बार कहा जाता है। मुझे यहां क्या समझ नहीं आ रहा है?

वेब के समाधान से एकत्रित समाधान "Ng- शामिल करते समय गुंजाइश खोना"

यह ng-include जो एक नया बच्चा गुंजाइश बनाता है, इसलिए $scope.lineText परिवर्तित नहीं है। मुझे लगता है कि this वर्तमान दायरे को संदर्भित करता है, इसलिए यह। this.lineText सेट होना चाहिए।

@ रेनन के रूप में उल्लेख किया गया है, एनजी-इन में एक नया बच्चा गुंजाइश है। यह गुंजाइश प्रोटोटाइप घर से बाहर निकलती है (नीचे दी गई रेखाएं देखें) HomeCtrl क्षेत्र से ng-model="lineText" वास्तव में बाल गुंजाइश पर एक आदिम गुंजाइश संपत्ति बनाता है, न कि होमकैटल के दायरे में। यह बच्चा दायरा अभिभावक / होमकूट क्षेत्र के लिए सुलभ नहीं है:

एनजी-क्षेत्र शामिल हैं

उपयोगकर्ता को HomeCtrl के $ scope.lines ऐरे में टाइप करने के लिए, मैं सुझाव देता हूं कि आप ऐडलाइन फ़ंक्शन के लिए मान पास करें:

  <form ng-submit="addLine(lineText)"> 

इसके अलावा, चूंकि लाइन टेक्स्ट एनजीइन-इन गुंजाइश / आंशिक के स्वामित्व में है, मुझे लगता है कि इसे साफ़ करने के लिए जिम्मेदार होना चाहिए:

  <form ng-submit="addLine(lineText); lineText=''"> 

फ़ंक्शन एडिडाइन () इस प्रकार बन जाएगा:

 $scope.addLine = function(lineText) { $scope.chat.addLine(lineText); $scope.lines.push({ text: lineText }); }; 

बेलाल

विकल्प:

  • HomeCtrl के $ दायरे पर ऑब्जेक्ट प्रॉपर्टी को परिभाषित करें, और आंशिक में इसका प्रयोग करें: ng-model="someObj.lineTextng-model="someObj.lineText ; बेला
  • अनुशंसित नहीं है, यह हैक का अधिक है: HomeCtrl $ दायरे पर एक lineText गुण बनाने / बनाने के लिए आंशिक में $ अभिभावक का उपयोग करें: ng-model="$parent.lineText" ; बेला

यह समझाने में थोड़ा सा है कि उपरोक्त दो विकल्प क्यों काम करते हैं, लेकिन इसे पूरी तरह से समझाया गया है: AngularJS में गुंजाइश प्रोटोटाइप / प्रोटोटाइपिकल विरासत की बारीकियों क्या हैं?

मैं ऐड-लाइन () फ़ंक्शन में इसका उपयोग this की अनुशंसा नहीं करता हूं। यह बहुत कम स्पष्ट हो जाता है कि कौन सा क्षेत्र तक पहुंचा जा रहा है / हेरफेर किया जा रहा है

इसे स्वीकार किए गए उत्तर के रूप में प्रयोग करने के बजाय, सुझाव देते हैं कि इसके बजाय $parent उपयोग करें तो आपके partial1.html में आपके पास होगा:

 <form ng-submit="$parent.addLine()"> <input type="text" ng-model="$parent.lineText" size="30" placeholder="Type your message here"> </form> 

यदि आप ng-include या अन्य निर्देशों में दायरे के बारे में अधिक जानना चाहते हैं, तो इसे देखें : https://github.com/angular/angular.js/wiki/Understanding-Scopes#ng-include

मुझे यह पता चल गया है कि माता-पिता और उप क्षेत्र डेटा को मिलाए बिना इस मुद्दे के आसपास कैसे काम किया जाए ng-include तत्व पर ng-if सेट करें और इसे एक स्कोप वैरिएबल पर सेट करें। उदाहरण के लिए :

 <div ng-include="{{ template }}" ng-if="show"/> 

अपने नियंत्रक में, जब आप अपने सब स्कोप में आवश्यक सभी डेटा सेट करते हैं, तो true को दिखाने के लिए सेट करें। ng-include इस समय आपके दायरे में सेट डेटा को कॉपी करेंगे और इसे आपके उप क्षेत्र में सेट करेंगे

अंगूठे का नियम गुंजाइश के आंकड़े को कम करना है, गुंजाइश अधिक है, अन्यथा आपको यह स्थिति है।

मैक्स