【发布时间】:2020-08-10 04:38:46
【问题描述】:
我在使用 SharePoint 脚本 WebPart 和 AngularJS 获取要绑定的初始值时遇到问题。我已经尝试了所有不同的方法来初始化 ng-int、自定义初始化函数、准备好文档。在所有情况下,都会调用函数并设置值,但 UI 不会更新值,直到我再次与控制器交互。
在下面的代码中,它是未绑定的 {{usertitle}}。
那么直接的问题是在 SharePoint、Script WebPart 和 AngularJS 的上下文中成功初始化值的正确方法是什么?
只是为了显示加载后 UI 的样子,填充了其他绑定但没有填充用户标题。
单击下一步按钮,然后单击上一步(在此期间不调用函数)。
脚本编辑器中的 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------------------------------------
};
【问题讨论】:
标签: angularjs sharepoint web-parts