>

안녕하세요. 녹아웃 검색을 수행 할 때 표시되는 적절한 마커를 설정하는 앱을 만들려고합니다.

기본적으로 앱입니다. 누군가 다음 목록을 검색하면 목록을 필터링하고 필터 목록과 관련된 마커 만 맵에 표시합니다. ko.utils.arrayFilter를 만들었으며 item.marker.setVisible (true)

만 설정하려고합니다.

Github 링크는 https://github.com/Aimpotis/map3

커뮤니티에 다시 한 번 감사 드리며 많은 학습을 돕고 있습니다


  • 답변 # 1

    마커의 가시성을 표시 여부와 일치하도록 설정하기 만하면됩니다 :

    if (!filter) {
      // this is new
      ko.utils.arrayForEach(self.listLoc(), function (item) {
        item.marker.setVisible(true);
      });
      return self.listLoc();
    } else {
      return ko.utils.arrayFilter(self.listLoc(), function(item) {
        var result = (item.title.toLowerCase().search(filter) >= 0)
        item.marker.setVisible(result); // this is a new line
        return result;
      });
    }
    
    

    일하는 바이올린.

    참고 : 특히 오래된 브라우저를 지원하지 않는 경우 Knockout의 arrayFilter 대신 배열 필터 방법을 사용할 수 있습니다  util 및 .foreach   arrayForEach 대신 .

  • 이전 Get Property within an Object within a Dictionary - 사전 내의 객체 내에서 속성 가져 오기 - 목표 c
  • 다음 asp.net - 항목에서 루프