2017-02-03 6 views
0

내 프로젝트에서 AMD 모듈에 코드를 작성했습니다. 내 생각은 amd 모듈을 만드는 것이다. 여기에서 jquery id selector를 사용하여 script 태그에 액세스 한 다음 JSON으로 파싱한다. 예를 들어 :웹 페이지에서 <script type = "text/json"id = "myJSON">을 사용하여 객체를 노출하고 있습니다. JavaScript에서 액세스하는 가장 좋은 방법은 무엇입니까?

<script type="text/json" id="myJSON"> 
{key1:"val1", key2:"val2", key3:"val3", key4:"val4"} 
</script> 


define(function() { 
    var data = $('#myJSON').text(); 
    var json = JSON.parse(data); 

    return json; 
}); 

이 좋은 방법입니다, 또는 우리가 GET (키) 기능 같은 것을 쓸 수있는 더 좋은 방법은 어떤 키의 값이 액세스 할 수 있습니다.

참고 : 노출 된 개체는 나중에 중첩 된 개체 일 수 있습니다.

답변

0

다음 목표를 달성 할 것입니다. 서식이 틀린 것처럼 보이는 서식을 유의하십시오. :-) 희망이 도움이! 아래에는 데이터를 구문 분석하고 데이터를 사용하여 값을 화면에 출력하는 예제가 포함되어 있습니다.

let get = function(key){ 
 
    let obj = $('#'+key); 
 
    let rtn = false; 
 
    if(obj) rtn = JSON.parse($(obj).text()); 
 
    return rtn; 
 
} 
 

 
let content = get("content"); 
 

 
$.each(content,function(k,v){ 
 

 
    let txt = $("<span>"+v+"</span><br/>"); 
 
    $('#output').append(txt); 
 
    
 
});
<span id="output"></span> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<script type="text/json" id="content"> 
 
{ 
 
    "key1" : "value1", 
 
    "key2" : "value2", 
 
    "key3" : "value3", 
 
    "key4" : "value4" 
 
} 
 
</script>

0

왜 각도 (또는 비슷한 것), 각 컨트롤러에 데이터를 넣어 사용하고, 단순히 HTML의 범위 객체를 표시?

http://plnkr.co/edit/FYzKS7?p=preview

<div ng-controller="MainController" ng-app="app"> 
    {{myObject}} 
</div> 

var app = angular.module('app', []); 
app.controller('MainController', ['$scope', function ($scope) { 
     $scope.myObject = { 
     cool_item : "my parents", 
     cooler_item: "my parents got divorced", 
     coolest_item: "my parents got divorced because of me" 
     } 
    } 
    ]);