【发布时间】:2016-10-28 18:16:22
【问题描述】:
我有一个 angular2(带有 angular-cli)应用程序,它将存在于由 CMS (DotnetNuke) 提供的网站的网页中。这个 web cms 使用 jquery 的服务框架来为网站“后端”的 api 调用生成一个验证令牌。因此,在获得此验证令牌之前,我无法生成对网站的任何 Web api 调用。
我创建了一个服务来处理对网站 API 的调用。在服务的构造函数中,我尝试按以下方式设置令牌(ServicesFramework 对象有一个名为 getAntiForgeryValue 的函数,它返回令牌):
@Injectable()
export class ApiService {
private http: Http;
constructor(http: Http)
{
console.log('dnn service constructor');
$(document).ready(function () {
this._dnnSF = $.ServicesFramework(804);
});
}
getRequestVerificationToken(): any {
return this._dnnSF.getAntiForgeryValue();
};
}
ServicesFramework 的 getAntiForgeryValue() 只返回 jQuery __RequestVerificationToken 用于对 .net web api 端点的 ajax 调用。 这只是为了解释。
问题:
注入此服务的其他组件在服务构造函数中的 document.ready 完成之前调用 getAntiForgeryValue(),因此我得到:
无法读取未定义的属性“getAntiForgeryValue”
问题: 有人可以帮我制定一个使用 angular2 的策略,我可以在 Angular 应用程序运行之前等待提供此验证令牌,或者如何在服务中等待构造函数完成。
提前致谢
【问题讨论】:
-
为什么投反对票?来吧,如果您投反对票,请提供理由。
标签: jquery angular angular-cli