복붙노트

[JQUERY] 내 JSON.stringify 결과에 추가 된 $$의 hashKey는 무엇인가

JQUERY

내 JSON.stringify 결과에 추가 된 $$의 hashKey는 무엇인가

해결법


  1. 1.각도는 DOM을 업데이트해야하는 경우가 알 수 있도록 변경 사항을 추적하려면이 옵션을 추가합니다.

    각도는 DOM을 업데이트해야하는 경우가 알 수 있도록 변경 사항을 추적하려면이 옵션을 추가합니다.

    당신이 JSON.stringify (OBJ)의 angular.toJson (OBJ) 대신 사용하는 경우 다음 각도는 이러한 내부 용 값을 제거합니다.

    당신이 {uniqueProperty} 접미사로 트랙을 사용하도록 반복 표현을 변경하는 경우 또한, 각도는 전혀 $$ hashKey를 추가 할 필요가 없습니다. 예를 들면

    <ul>
        <li ng-repeat="link in navLinks track by link.href">
            <a ng-href="link.href">{{link.title}}</a>
        </li>
    </ul>
    

    그냥 항상 당신이 필요로 기억 "링크를." 표현의 일부 - 난 항상 잊지하는 경향이있다. 그냥 확실하게 작동하지 않습니다 HREF으로 추적 할 수 있습니다.


  2. 2.내 사용의 경우에 권장되는 방법을 (X2JS에 결과 객체를 공급)

    내 사용의 경우에 권장되는 방법을 (X2JS에 결과 객체를 공급)

    data = angular.toJson(source);
    

    도움말은 $$ hashKey 속성을 제거하지,하지만 결과는 더 이상 X2JS에 의해 처리 될 수 있습니다.

    data = angular.copy(source);
    

    물론 $$ hashKey의 특성을 제거하지만, 결과 X2JS위한 파라미터로서 사용할 남았다.


  3. 3.그것은 보통 NG 반복 지시자와 함께 제공됩니다. DOM 조작 AngularJS와 플래그을하는 것은 특별한 ID로 객체.

    그것은 보통 NG 반복 지시자와 함께 제공됩니다. DOM 조작 AngularJS와 플래그을하는 것은 특별한 ID로 객체.

    이 각도로 일반적입니다. 예를 들어 u는 개체 ngResource와 객체를 얻을 수있는 모든 자원 API를 포함하고 당신이 쿠키가 너무 AngularJS와는 속성 __ngDebug을 추가 할 것으로 저장 $, 등과 같은 방법을 볼 수있는 경우.


  4. 4.당신이 당신의 데이터의 id를 추가하지 않으려면, 당신은 항목이 아닌 가치의 배열에서의 위치에 의해 키가되도록 할 것입니다 배열의 인덱스에 의해 추적 할 수 있습니다.

    당신이 당신의 데이터의 id를 추가하지 않으려면, 당신은 항목이 아닌 가치의 배열에서의 위치에 의해 키가되도록 할 것입니다 배열의 인덱스에 의해 추적 할 수 있습니다.

    이 같이 :

    var myArray = [1,1,1,1,1];
    
    <li ng-repeat="item in myArray track by $index">
    

  5. 5.당신이 위의 각도 1.3 이상을 사용하는 경우에, 나는 당신이 당신의 NG 반복에 "에 의해 트랙"을 사용하는 것이 좋습니다. 당신이 "에 의해 트랙"을 사용하는 경우 각도는 배열의 개체에 "$$ hashKey"속성을 추가하지 않습니다. 배열 변경에 뭔가가, 각도가 겨 반복의 전체 DOM 구조를 다시하지 않는 경우는, 성능 이점을 얻을 대신 변경된 배열의 값에 대한 DOM의 일부를 다시 만듭니다.

    당신이 위의 각도 1.3 이상을 사용하는 경우에, 나는 당신이 당신의 NG 반복에 "에 의해 트랙"을 사용하는 것이 좋습니다. 당신이 "에 의해 트랙"을 사용하는 경우 각도는 배열의 개체에 "$$ hashKey"속성을 추가하지 않습니다. 배열 변경에 뭔가가, 각도가 겨 반복의 전체 DOM 구조를 다시하지 않는 경우는, 성능 이점을 얻을 대신 변경된 배열의 값에 대한 DOM의 일부를 다시 만듭니다.


  6. 6.업데이트 : 각도 V1.5에서 $ 인덱스에 의해 트랙이 지금 대신 나에게 NG-반복 속는 오류를 주면서 링크를 사용하여 표준 구문입니다.

    업데이트 : 각도 V1.5에서 $ 인덱스에 의해 트랙이 지금 대신 나에게 NG-반복 속는 오류를 주면서 링크를 사용하여 표준 구문입니다.

    나는 중첩 된 NG 반복이로 실행하고 아래했습니다.

    <tbody>
        <tr ng-repeat="row in data track by $index">
        <td ng-repeat="field in headers track by $index">{{row[field.caption] }}</td>
    </tr>
    

  7. 7.여기 쉽게 개체에서 $$ hashKey을 제거하는 방법이다 :

    여기 쉽게 개체에서 $$ hashKey을 제거하는 방법이다 :

    $scope.myNewObject = JSON.parse(angular.toJson($scope.myObject))
    

    $ scope.myObject은 - 당신이에서 $$의 hashKey를 제거 즉시 작업을 수행하도록 개체에 참조

    $ scope.myNewObject -이 필요에 따라 사용할 수 있도록 지정은 새 개체를 원래 객체를 수정


  8. 8.https://www.timcosta.io/angular-js-object-comparisons/

    https://www.timcosta.io/angular-js-object-comparisons/

    각도는 사람들이 그것을보고 처음으로 꽤 마법이다. 당신이 당신의 JS에서 변수를 업데이트 할 때 자동 DOM을 업데이트하고, 누군가가 DOM에서 값을 업데이트 할 때 같은 변수는 JS 파일에 업데이트됩니다. 이 같은 기능은 페이지 요소에서 작동하고, 컨트롤러에서.

    이 모든 열쇠는 겨-반복에 사용되는 객체와 배열에 $$ hashKey 각도를 첨부합니다입니다.

    이 $$ hashKey는 추가 데이터를 제거하지 않는 API에 전체 개체를 보내는 사람들에게 많은 혼란을 야기한다. API는 모든 요청에 ​​대한 400를 반환하지만 $$ hashKey 그냥 객체에서 떠나 실 거예요있다.

    앵귤러 사용 $$ hashKey는 NG 반복쪽으로 반복되는 배열의 어느 항목에 속하는 DOM에있는 요소를 추적한다. $$ hashKey 각도없이이 각도의 주요 용도 중 하나입니다 그들의 대응에 자바 스크립트 또는 DOM에서 발생하는 변경 사항을 적용 할 방법이 없습니다.

    이 배열을 고려 :

    users = [  
        {
             first_name: "Tim"
             last_name: "Costa"
             email: "tjsail33@gmail.com"
        }
    ]
    

    우리가 렌더링 된 경우 ng를 반복 = "사용자의 사용자"를 사용하여리스트로, 거기에 각 개체는 각도에서 추적 목적을 위해 $$ hashKey을받을 것이다. 다음은이 $$의 hashKey를 방지하는 방법은 두 가지가 있습니다.

  9. from https://stackoverflow.com/questions/18826320/what-is-the-hashkey-added-to-my-json-stringify-result by cc-by-sa and MIT license