angle.js-angularJS ng-repeat
天蓬老师
天蓬老师 2017-05-15 16:54:09
0
2
572

이 페이지는 ng-repeat를 사용하여 조회수를 생성합니다. 컨트롤러에서 ng-repeat의 ng-model을 수정했습니다. 뷰가 수정되지 않는 이유는 무엇입니까?

으아아아

$scope.tds가 처음으로 새로 고쳐지면 보기가 변경되었습니다. 그러나 $scope.tds에 값이 다시 할당되면 보기는 더 이상 변경되지 않습니다.
그런데 $scope.tds의 길이가 변경되면 뷰도 변경됩니다. 이유는 무엇입니까?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

모든 응답(2)
習慣沉默

우선, 코드에서 두 가지 이름 지정 문제에 대해 이야기하고 싶습니다.

  1. "td in td"대체 Angular는 실제로 이를 올바르게 실행할 수 있습니다. 두 이름을 구별하는 것이 좋습니다. 예를 들어 td in tds로 변경합니다.
  2. "td in td"是什么鬼,Angular居然也可以正确地执行。建议区别这两个名称,比如改成td in tds
  3. ab这样命名确实可以,不过写控制器时是不是经常要想一想a是什么?哦,是$scope。为何不直接命名为$scope

好了不啰嗦了,回答你的问题。在a.td = []的时候,a.td引用了另外一个数组,原有数组并未改变。而模板中绑定的是原有数组。这确实是AngularJS的一个坑,但你最好用pushpopsplice 이렇게 ab의 이름을 지정하는 것은 괜찮지만 컨트롤러를 작성할 때 항상 a가 무엇인지 생각해야 합니까? 아, $scope군요. 그냥 $scope로 이름을 지정하면 어떨까요?

알겠습니다. 더 이상 고민하지 말고 질문에 답해 보겠습니다. a.td = []인 경우 a.td는 다른 배열을 참조하고 원래 배열은 변경되지 않습니다. 원본 배열은 템플릿에 바인딩됩니다.

이것은 실제로 AngularJS의 함정
이지만 배열을 작동하려면 push, pop, splice 등을 사용하는 것이 좋습니다. 전체 어레이를 교체하려면 다음과 같이 하는 것이 좋습니다.

으아악 🎜AngularJS의 더 자세한 데이터 바인딩 메커니즘과 업데이트 프로세스는 다음 문서를 참조하세요: 🎜http://harttle.github.io/2015/06/06/angular-data-bound-and-digest.ht.. . 🎜
習慣沉默

으아악

사용해 보세요
http://plnkr.co/edit/6tNYE0boiI6CXdKtckpa?p=preview

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿