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

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

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

מתוזמן נעוץ נעול הועבר תכנות
5 פוסטים 3 כותבים 565 צפיות
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א מנותק
    א מנותק
    אהרן
    כתב ב נערך לאחרונה על ידי
    #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
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
  • התחברות

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

  • התחברו או הירשמו כדי לחפש.