2015-01-15 4 views
0

응용 프로그램 부분이 포함 된 SharePoint 호스트 응용 프로그램을 만들려고하는데이 응용 프로그램 부분은 사용자가 따르는 내용을 보여야합니다. 응용 프로그램에서 작업 코드를 예제로 사용했지만 App Part 내부에서 작동하도록하지는 않습니다.응용 프로그램 부분, spPageContextInfo

"알 수없는 ReferenceError : _spPageContextInfo가 정의되지 않았습니다."

누구나 응용 프로그램 파트에서이 작업을 수행하고 social.following을 사용하는 실제적인 예가 있다면 도움을주십시오.

var headline = new Array("People", "Documents", "Sites"); 
    var ActorImg = new Array("/_layouts/15/images/person.gif", "/_layouts/15/images/lg_ICGEN.gif",   "/_layouts/15/images/siteicon_16x16.png"); 

function doJSON(RESTuri, success, fail) { 
    var restUrl = _spPageContextInfo.webAbsoluteUrl + RESTuri; 
    var executor = new SP.RequestExecutor(_spPageContextInfo.webAbsoluteUrl); 
    executor.executeAsync(
    { 
     url: restUrl, 
     method: "GET", 
     headers: { "Accept": "application/json; odata=verbose" }, 
     success: success, 
     error: fail 
    } 
    ); 
} 


function renderSuccess(data) { 
    var jsonObject = JSON.parse(data.body); 
    var n = document.getElementById('jsonout'); 
    n.innerHTML = data.body; 
    var results = jsonObject.d.Followed.results; 
    var str = ''; 
    var old = -1; 
    var img = null; 

    for (j = 0; j < 5; j++) { 
     str += "<div class=\"container container" + j + "\">"; 
     for (i = 0; i < results.length; i++) { 
      if (j != results[i].ActorType) continue; 
      if (old != results[i].ActorType) str += "<h1 class=\"headline" + results[i].ActorType + "\">" + headline[results[i].ActorType] + "</h1>"; 

      img = results[i].ImageUri; 
      if (img == null) img = ActorImg[results[i].ActorType]; 

      switch (results[i].ActorType) { 
       case 0: 
        // Use case: depending on ActorType if you want to use indiviual markup for every item-type 
        str += "<a title=\"" + results[i].Name + "\" class=\"link" + results[i].ActorType + "\" style=\"background-image:url(" + img + ")\" href=\"" + results[i].Uri + "\">" + results[i].Name + "</a>"; 
        break; 
       default: 
        str += "<a title=\"" + results[i].Name + "\" class=\"link" + results[i].ActorType + "\" style=\"background-image:url(" + img + ")\" href=\"" + results[i].Uri + "\">" + results[i].Name + "</a>"; 
        break; 
      } 

      old = results[i].ActorType; 
     } 
     str += "</div>"; 
    } 

    n = document.getElementById('htmlout'); 
    n.innerHTML = str + "<h1></h1>"; 
} 

function renderFail(data, errorCode, errorMessage) { 
    n = document.getElementById('htmlout'); 
    n.innerHTML = errorMessage; 
} 

$(document).ready(function() { 


    doJSON("/_api/social.following/my/followed%28types=15%29", renderSuccess, renderFail); 
}); 

이 앱 페이지 (Default.aspx를) 앱 파트 페이지 (AppPart.aspx) 모두에서 사용되고있는 사업부는 다음과 같습니다 :

는 App.js의 코드입니다
<div class="classic"> 
     <pre id="jsonout" style="display: none;"></pre> 
     <div id="htmlout"></div> 
</div> 

답변

0

죄송합니다. sp.requestexecutor.js 파일에 대한 참조를 추가하여 해결했으며 쿼리 문자열에서 host- 및 app-url을 구문 분석했습니다.