HtmlService 템플릿을 통해 전송 된 객체 배열에 액세스하는 방법은 무엇입니까?

폴 에네스 베트

Apps Script를 배우려고합니다. 페이지에서 라디오 버튼을 선택하여 언어를 선택한 다음 선택한 언어의 오디오 파일을 재생하려고합니다. 파일은 언어별로 드라이브 폴더에 있습니다. 각 페이지에는 10 개 언어로 된 약 150 개의 구문이 있습니다. google.script.run과 함께 작동하도록했지만 스크립트를 너무 많이 실행하기 때문에 실패합니다. 그래서 HtmlService.createTemplateFromFile을 통해 객체 배열로 전달하는 것이 좋은 생각이라고 생각했습니다.

나는 이것을 .gs 파일에서 사용했다-그것이 효과가 있다고 생각한다.

function doGet(){
  var tmp = HtmlService.createTemplateFromFile('index')
  tmp.audioUrls = getDownloadUrls()
  return tmp.evaluate()
}

audioUrls 배열은 다음과 같습니다. [{name : "blah", language : "blah", url : "https ..."} ....]

내 html 파일에서 다음 스크립트를 사용하여 URL을 오디오 src로 할당하고 있습니다.

function loadAudio(){
  var a = document.getElementsByTagName('audio');
  for (var i = 0, l = audios.length; i<l; i++){
    var myId = a[i].id;
    var qText = a[i].title;
    var lang = language = document.querySelector('input[name="language"]:checked').value;

    var result = audioUrls.find(file => file.name === qText +".m4a" && file.language ===    lang);

    document.getElementById(myId).setAttribute('src', result.url);
    }
}

내가 얻는 오류는 audioUrls.find가 정의되지 않았다고 말합니다. 이것은 HtmlService 템플릿에 포함 된 배열입니다. 누군가 해당 배열의 개체에 액세스하는 방법을 알아 내기 위해 올바른 방향을 알려줄 수 있습니까? 매우 감사! 배우면서 잘못된 것이 많다고 확신하지만이 수준에서는 이해할 수 있습니다. 간단할수록 좋습니다. 감사합니다.

Tanaike
  • getDownloadUrls()Google Apps Script 에서 가져온 개체 를 HTML 템플릿 으로 사용하려고합니다 .

내 이해가 맞다면이 답변은 어떻습니까? 이것은 몇 가지 가능한 답변 중 하나에 불과하다고 생각하십시오.

수정 지점 :

  • 이 경우 audioUrlsHTML에서 사용하기 위해 검색된 값을 getDownloadUrls()문자열로 설정 하고 문자열은 HTML 측에서 객체로 파싱합니다.

수정 된 스크립트 :

스크립트 수정시 다음과 같이 수정하십시오.

Google Apps Script 측 :

function doGet(){
  var tmp = HtmlService.createTemplateFromFile('index');
  tmp.audioUrls = JSON.stringify(getDownloadUrls());  // Modified
  return tmp.evaluate();
}

HTML 및 자바 스크립트 쪽 :

function loadAudio(){
  const audioUrls = JSON.parse(<?= audioUrls ?>);  // Added

  var a = document.getElementsByTagName('audio');
  for (var i = 0, l = audios.length; i<l; i++){
    var myId = a[i].id;
    var qText = a[i].title;
    var lang = language = document.querySelector('input[name="language"]:checked').value;

    var result = audioUrls.find(file => file.name === qText +".m4a" && file.language ===    lang);

    document.getElementById(myId).setAttribute('src', result.url);
  }
}

노트 :

  • 귀하의 경우 Web Apps의 스크립트를 수정 한 경우 Web Apps를 새 버전으로 재배포하십시오. 이에 따라 최신 스크립트가 Web Apps에 반영됩니다. 조심하세요.

참고:

내가 당신의 질문을 오해하고 이것이 당신이 원하는 방향이 아니라면 사과드립니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

서버 측에서 Jquery.getJSON을 통해 전송 된 데이터에 액세스하는 방법은 무엇입니까?

분류에서Dev

Android에서 통화를 통해 변조 된 음성을 전송하는 방법은 무엇입니까?

분류에서Dev

Springboot 애플리케이션에서 POSTMAN을 통해 전송 된 JSONObject를 잡는 방법은 무엇입니까?

분류에서Dev

템플릿 리터럴에서 객체 배열을 반복하고 각 객체에 대해 함수를 사용하는 방법은 무엇입니까?

분류에서Dev

래칫을 사용하여 단일 웹 소켓 전송 요청을 통해 객체 배열을 보내는 방법은 무엇입니까?

분류에서Dev

codeigniter에서 전체 HTML 템플릿을 통합하는 방법은 무엇입니까?

분류에서Dev

C ++ : 배열을 통해 생성 된 객체이지만 매개 변수를 전달하는 방법은 무엇입니까?

분류에서Dev

JavaScript 객체 배열을 통해 인수로 함수를 전달하는 방법은 무엇입니까?

분류에서Dev

자바 스크립트 객체에 전달 된 함수에 액세스하는 방법은 무엇입니까?

분류에서Dev

할당 해제 된 객체가 콜백 등에서 액세스되는 것을 방지하는 방법은 무엇입니까?

분류에서Dev

전체 애플리케이션에서 구성 객체에 액세스하는 방법은 무엇입니까?

분류에서Dev

Freemarker 템플릿에서 Spring MVC 모델 객체에 액세스하는 방법은 무엇입니까?

분류에서Dev

템플릿을 전송하는 방법은 무엇입니까?

분류에서Dev

템플릿을 전송하는 방법은 무엇입니까?

분류에서Dev

RJ45를 통해 연결된 두 Ubuntu 시스템간에 파일을 전송하는 방법은 무엇입니까?

분류에서Dev

pyplot에서 전체 세그먼트를 색칠하기 위해 마스크 된 배열을 얻는 방법은 무엇입니까?

분류에서Dev

터미널을 통해 마운트 된 NTFS 파티션에 액세스하는 방법은 무엇입니까?

분류에서Dev

템플릿 인수의 자체 템플릿 인수에 액세스하는 방법은 무엇입니까?

분류에서Dev

NodeJS에서 객체 배열을 해제하는 방법은 무엇입니까?

분류에서Dev

JSP에서 URL을 통해 객체를 전달하는 방법은 무엇입니까?

분류에서Dev

템플릿으로 전송 된 매개 변수의 유형을 확인하는 방법은 무엇입니까?

분류에서Dev

객체 배열을 반복하여 해당 객체 내의 해당 속성에 종속 된 속성을 반환하는 방법은 무엇입니까?

분류에서Dev

journalctl을 통해 BTRFS에서 손상된 파일의 전체 경로를 찾는 방법은 무엇입니까?

분류에서Dev

리플렉션을 통해 검색된 객체를 문자열로 변환 (여러 클래스 유형을 반복하는 방법은 무엇입니까?)

분류에서Dev

배열 해체를 수행 한 다음 JavaScript에서 해체 된 객체의 값을 동시에 검색하는 방법은 무엇입니까?

분류에서Dev

약속 된 속성을 가진 객체 전체를 해결하는 더 좋은 방법은 무엇입니까?

분류에서Dev

값이 객체 (JSON) 인 데이터 속성을 통해 요소에 액세스하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

템플릿 매개 변수에 전달 된 유형을 추출하는 방법은 무엇입니까?

분류에서Dev

Ruby에서 인스턴스화 된 객체 정보를 포함하는 해시 배열을 반복하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    서버 측에서 Jquery.getJSON을 통해 전송 된 데이터에 액세스하는 방법은 무엇입니까?

  2. 2

    Android에서 통화를 통해 변조 된 음성을 전송하는 방법은 무엇입니까?

  3. 3

    Springboot 애플리케이션에서 POSTMAN을 통해 전송 된 JSONObject를 잡는 방법은 무엇입니까?

  4. 4

    템플릿 리터럴에서 객체 배열을 반복하고 각 객체에 대해 함수를 사용하는 방법은 무엇입니까?

  5. 5

    래칫을 사용하여 단일 웹 소켓 전송 요청을 통해 객체 배열을 보내는 방법은 무엇입니까?

  6. 6

    codeigniter에서 전체 HTML 템플릿을 통합하는 방법은 무엇입니까?

  7. 7

    C ++ : 배열을 통해 생성 된 객체이지만 매개 변수를 전달하는 방법은 무엇입니까?

  8. 8

    JavaScript 객체 배열을 통해 인수로 함수를 전달하는 방법은 무엇입니까?

  9. 9

    자바 스크립트 객체에 전달 된 함수에 액세스하는 방법은 무엇입니까?

  10. 10

    할당 해제 된 객체가 콜백 등에서 액세스되는 것을 방지하는 방법은 무엇입니까?

  11. 11

    전체 애플리케이션에서 구성 객체에 액세스하는 방법은 무엇입니까?

  12. 12

    Freemarker 템플릿에서 Spring MVC 모델 객체에 액세스하는 방법은 무엇입니까?

  13. 13

    템플릿을 전송하는 방법은 무엇입니까?

  14. 14

    템플릿을 전송하는 방법은 무엇입니까?

  15. 15

    RJ45를 통해 연결된 두 Ubuntu 시스템간에 파일을 전송하는 방법은 무엇입니까?

  16. 16

    pyplot에서 전체 세그먼트를 색칠하기 위해 마스크 된 배열을 얻는 방법은 무엇입니까?

  17. 17

    터미널을 통해 마운트 된 NTFS 파티션에 액세스하는 방법은 무엇입니까?

  18. 18

    템플릿 인수의 자체 템플릿 인수에 액세스하는 방법은 무엇입니까?

  19. 19

    NodeJS에서 객체 배열을 해제하는 방법은 무엇입니까?

  20. 20

    JSP에서 URL을 통해 객체를 전달하는 방법은 무엇입니까?

  21. 21

    템플릿으로 전송 된 매개 변수의 유형을 확인하는 방법은 무엇입니까?

  22. 22

    객체 배열을 반복하여 해당 객체 내의 해당 속성에 종속 된 속성을 반환하는 방법은 무엇입니까?

  23. 23

    journalctl을 통해 BTRFS에서 손상된 파일의 전체 경로를 찾는 방법은 무엇입니까?

  24. 24

    리플렉션을 통해 검색된 객체를 문자열로 변환 (여러 클래스 유형을 반복하는 방법은 무엇입니까?)

  25. 25

    배열 해체를 수행 한 다음 JavaScript에서 해체 된 객체의 값을 동시에 검색하는 방법은 무엇입니까?

  26. 26

    약속 된 속성을 가진 객체 전체를 해결하는 더 좋은 방법은 무엇입니까?

  27. 27

    값이 객체 (JSON) 인 데이터 속성을 통해 요소에 액세스하는 가장 좋은 방법은 무엇입니까?

  28. 28

    템플릿 매개 변수에 전달 된 유형을 추출하는 방법은 무엇입니까?

  29. 29

    Ruby에서 인스턴스화 된 객체 정보를 포함하는 해시 배열을 반복하는 방법은 무엇입니까?

뜨겁다태그

보관