2014-01-28 2 views
0

SharePoint 목록의 UI 레이어 역할을하는 작은 SPA를 작성하려고합니다.SP.js "Uncaught TypeError : Object [object Object]에 'get_staticObjects'메서드가 없습니다."

정상적인 AJAX 호출을 성공적으로 수행했지만 그 방법의 한계로 인해 JavaScript Object Model을 사용하려고합니다.

이 * catch되지 않은 형식 오류가 : : 개체 [개체 개체] 어떤 방법 'get_staticObjects'*

이 꽤 많이 방지를 가지고

I가 발생하고 문제는 (제목)에서 SP.js에 오류가 저도 대본을 보는 것조차 막았습니다. 여기

페이지에 대한 코드입니다 :
<!DOCTYPE html> 
<html> 
<head> 
    <title>JavaScript Object Model Test</title> 

    <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script> 
    <script type="text/javascript" src="js/knockout-2.3.0.js"></script> 

    <script type="text/javascript" src="/_layouts/MicrosoftAjax.js"></script> 
    <script type="text/javascript" src="/_layouts/1033/init.js"></script> 
    <script type="text/javascript" src="/_layouts/SP.js"></script> 
    <script type="text/javascript" src="/_layouts/SP.Core.js"></script> 

</head> 
<body> 
<script type="text/javascript"> 
    var siteUrl = '/sites/MySiteCollection'; 
    function retrieveListItems() { 
     var clientContext = new SP.ClientContext(siteUrl); 
     var oList = clientContext.get_web().get_lists().getByTitle('Announcements'); 
     var camlQuery = new SP.CamlQuery(); 
     camlQuery.set_viewXml('<View><Query><Where><Geq><FieldRef Name=\'ID\'/>' + 
      '<Value Type=\'Number\'>1</Value></Geq></Where></Query><RowLimit>10</RowLimit></View>'); 
     this.collListItem = oList.getItems(camlQuery); 
     clientContext.load(collListItem); 
     clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));  
    } 

    function onQuerySucceeded(sender, args) { 
     var listItemInfo = ''; 
     var listItemEnumerator = collListItem.getEnumerator(); 
     while (listItemEnumerator.moveNext()) { 
      var oListItem = listItemEnumerator.get_current(); 
      listItemInfo += '\nID: ' + oListItem.get_id() + 
       '\nTitle: ' + oListItem.get_item('Title') + 
       '\nBody: ' + oListItem.get_item('Body'); 
     } 
     alert(listItemInfo.toString()); 
    } 
    function onQueryFailed(sender, args) { 
     alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); 
    } 
    ExecuteOrDelayUntilScriptLoaded(retrieveListItems, "sp.js"); 
</script> 
</body> 
</html> 

내가 아무 일도 발생하지 않습니다 것을 실행하지만, 콘솔 위의 오류를 출력

.

+1

존 채프먼 (John Chapman)의 의견 (http://sharepoint.stackexchange.com/a/22776/18140)을 근거로 대답하면 시도하려는 것이 가능하지 않을 수도 있습니다. SharePoint 응용 프로그램 페이지에서 내 페이지를 다시 만들려고합니다. – Joshua

+0

Microsoft의 쉽지 않은 프로그램 대신 SharepointPlus (http://aymkdn.github.io/SharepointPlus/) 또는 SPServices (http://spservices.codeplex.com/)와 같은 타사 라이브러리를 사용해 볼 수 있습니다. 사용.... – AymKdn

답변

0

SharePoint Designer에서 빈 페이지를 만들고 내 HTML을 포함하고 그 안에 내 스크립트에 연결하여이 문제를 해결할 수있었습니다. SharePoint는 HTML 페이지에서 JavaScript 프레임 워크를 제대로로드하지 않습니다. SharePoint에서 작성한 ASPX 페이지에만 있습니다.