修复WindowsAzure未在Ionic2 / Angular2 App中定义

时间:2016-06-14 05:02:47

标签: mobile azure-mobile-services ionic2

基于Ionic2空白模板创建了一个Ionic2应用程序。使用Visual Studio 2015 Update 2.设置Azure Mobile Services帐户以用作后端。已安装Azure Mobile Apps插件(通过双击config.xml并选择Azure Mobile Apps并单击安装)/config.xml摘录:

<plugin name="cordova-plugin-ms-azure-mobile-apps" version="2.0.0-beta4" />

安装了azure-mobile-app.d.ts,如下所述:https://www.nuget.org/packages/azure-mobile-apps.TypeScript.DefinitelyTyped/。 VS2015 intellisense认为代码有效。

但是,尝试在chrome控制台中访问后端时出错:未定义WindowsAzure。

client: WindowsAzure.MobileServiceClient;
...
client = new WindowsAzure.MobileServiceClient('removed url for security');

2 个答案:

答案 0 :(得分:1)

代码需要在设备准备好后运行。在Ionic2中,您可以在app.ts中看到设备就绪的示例:

constructor(platform: Platform) {
    platform.ready().then(() => {
      // Okay, so the platform is ready and our plugins are available.
      // Here you can do any higher level native things you might need.
      StatusBar.styleDefault();
    });
  }

我错误地认为主页构造函数会在设备准备就绪后触发,但事实并非如此。

答案 1 :(得分:1)

我能够让WindowsAzure.MobileServiceClient工作的唯一方法是在我的提供程序中声明一个WindowsAzure变量,然后在index.html中手动包含脚本文件MobileServices.Cordova.js作为脚本引用。它不太理想。有一些打字文件,但它们不再是最新的。