דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ng-repeat איך ניגשים לאיבר הספציפי?

ng-repeat איך ניגשים לאיבר הספציפי?

מתוזמן נעוץ נעול הועבר תכנות
5 פוסטים 3 כותבים 617 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    אהרן
    כתב ב נערך לאחרונה על ידי
    #1

    כל אלמנט נוצר ומשתמש במידע שהוצמד לאוביקט מתוך אוביקטים רבים במערך
    איך אני ניגש לשנות את האוביקט הספציפי?
    אני יכול ע"י $index למצוא את המקום שלו
    יש איזה משתנה שמחזיק רפרנס אליו ישירות (למה מפריע לי להשתמש ב$index? לא יודע)?

    תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid ניהול
      כתב ב נערך לאחרונה על ידי dovid
      #2

      אני לא מבין את הסיטאוציה. אנא פרט.

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      תגובה 1 תגובה אחרונה
      0
      • מנצפךמ מנותק
        מנצפךמ מנותק
        מנצפך
        כתב ב נערך לאחרונה על ידי
        #3

        @אהרן
        אתה לא אמור לשנות את האובייקט ב DOM. רק ב scope.

        תגובה 1 תגובה אחרונה
        1
        • א מנותק
          א מנותק
          אהרן
          כתב ב נערך לאחרונה על ידי אהרן
          #4

          יצרתי מערך בקונטרולר

          $scope.allObj = [
          					[
          						{ name: 'myName', lastName: 'aaa' },
          						{ name: 'myName', lastName: 'bbb' },
          						{ name: 'myName', lastName: 'ccc' }
          					],
          					[
          						{ name: 'myName', lastName: 'ddd' },
          						{ name: 'myName', lastName: 'eee' },
          						{ name: 'myName', lastName: 'fff' }
          					]
          				];
          

          מזה יצרתי אלמנטים

          <div ng-controller="myCtrl">
          	<div ng-repeat="section in allObj">
          		<button ng-repeat="fullNmae in section" ng-click="changeName( $parent.$index, $index )"</button>
          	</div>
          </div>
          

          וזו הפונקציה:

          $scope.changeName = function(idx1, idx2) {
          	$scope.allObj[idx1][idx2].myName = 'aharon';
          };
          

          השאלה היא על הקטע הזה:

          scope.allObj[idx1][idx2]
          

          זו הדרך הנכונה?
          זו הדרך היחידה או שיש משהו כמו this.name?

          תגובה 1 תגובה אחרונה
          0
          • dovidD מנותק
            dovidD מנותק
            dovid ניהול
            כתב ב נערך לאחרונה על ידי
            #5

            @אהרן אמר בng-repeat איך ניגשים לאיבר הספציפי?:

            $scope.changeName = function(idx1, idx2) {
            $scope.allObj[idx1][idx2].myName = 'aharon';
            };

            אתה ודאי יכול להעביר מצביע לאיבר עצמו או לאביו. וודאי שתחושתך שלא אמורים לעבוד עם האינדקס נכונה.
            אתה משתמש בשם של האיטרטור: x in collection, בכל הסקופ של הלופ הx מייצג את האיבר הנוכחי.

            <div ng-repeat="section in allObj">
              <button ng-repeat="fullName  in section" ng-click="changeName(fullName,section)">{{fullName.name}} </button>
            </div>
            

            בדוגמה פה העברתי לפונקציה הן את האיבר הפנימי והן את אביו, אף שבפונקציה שלך לכאורה אין שימוש באב.
            הנה הפונקציה לפי השינוי:

            $scope.changeName = function(element, parent) {
              element.name = 'aharon';
            };
            

            דוגמה חיה:
            https://plnkr.co/edit/OGoISxso0SNKbuIjdKJX?p=preview

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            תגובה 1 תגובה אחרונה
            2

            בא תתחבר לדף היומי!
            • התחברות

            • אין לך חשבון עדיין? הרשמה

            • התחברו או הירשמו כדי לחפש.
            • פוסט ראשון
              פוסט אחרון
            0
            • דף הבית
            • קטגוריות
            • פוסטים אחרונים
            • משתמשים
            • חיפוש
            • חוקי הפורום