У меня проблема с получением начальных значений для привязки с помощью веб-части сценария SharePoint и AngularJS. Я попробовал все различные способы инициализации ng-int, пользовательские функции инициализации, документ готов. Во всех случаях вызывается функция и устанавливаются значения, но пользовательский интерфейс не обновляется со значениями, пока я не буду снова взаимодействовать с контроллером.
В приведенном ниже коде это {{usertitle}}, который не связывается .
Таким образом, прямой вопрос заключается в том, как правильно правильно инициализировать значения в контексте SharePoint, Script WebPart и AngularJS?
Просто чтобы показать, что Пользовательский интерфейс выглядит после загрузки, другие привязки заполняются, но не usertitle.
Нажмите кнопку «Далее», а затем «Предыдущая» (при этом функция не вызывается).
HTML в редакторе скриптов
<div id="appDiv" ng-app="myapp">
<div id="controllerDiv" ng-controller="MyController" >
<div class="item10 mainborder">
<div ng-show=showPage1() ng-init="firstFunction(this)">
<p class="lead">Welcome {{usertitle}}!</p>
</div>
<div>
<input type="button" value="Previous" ng-click="pagePrevious()" ng-disabled=showPage1() />
<span>{{pageXofY()}}</span>
<input type="button" value="Next" ng-click="pageNext()" ng-disabled=showPage6() />
</div>
</div>
</div>
</div>
Angular Контроллер JS
$scope.firstFunction = function ($scope) {
//User Info-------------------------------------
var userid = _spPageContextInfo.userId;
var requestUri = _spPageContextInfo.webAbsoluteUrl + "/_api/web/getuserbyid(" + userid + ")";
var requestHeaders = { "accept": "application/json;odata=verbose" };
$.ajax({
url: requestUri,
contentType: "application/json;odata=verbose",
headers: requestHeaders,
success: onSuccessUInfo,
error: onErrorUInfo
});
function onSuccessUInfo(data, request) {
$scope.usertitle = data.d.Title;
$scope.email = data.d.Email;
$scope.loginname = data.d.LoginName;
//alert(loginName);
}
function onErrorUInfo(error) {
alert("error");
}
//End USeriNfo------------------------------------
};