Javascript 财产';x';是私有的,只能在类内访问';y';

Javascript 财产';x';是私有的,只能在类内访问';y';,javascript,angular,typescript,ionic-framework,ionic2,Javascript,Angular,Typescript,Ionic Framework,Ionic2,我有一段代码: import { Component } from '@angular/core'; import { NavController, Loading, Alert } from 'ionic-angular'; @Component({ templateUrl: 'build/pages/search/search.html', }) export class SearchPage { constructor (...

我有一段代码:

   import { Component } from '@angular/core';
    import { NavController, Loading, Alert } from 'ionic-angular';

    @Component({
      templateUrl: 'build/pages/search/search.html',
    })

    export class SearchPage {
    constructor (....)
    {
         // code here
    }

    findItems()
    {
            let loading = Loading.create({
                content: "Finding items..."
            });

            this.nav.present(loading);
            // other stuff here
    }
当我运行
ionic service
时,所有内容都正确显示,但当我单击调用
findItems()
方法的按钮时,我会出现以下错误:

Error TS2341: Property 'create' is private and only accessible within class 'Loading
如果我执行以下操作,则会出现类似错误:

let alert = Alert.create({
                    title: 'Hello!',
                });
在这种情况下,在我的终端中出现以下消息:
错误TS2341:属性“create”是私有的,只能在类“Alert”中访问。


我正在使用Ionic2版本2.0.0-beta.36

编辑:这只适用于beta 11及更高版本

这是因为
create
是类
Loading
的函数,因此不能在
Loading
类之外调用


Ionic文档中的显示了一个
LoadingController
类,用于使用所需选项实例化加载对象。我会从那里开始

import { LoadingController }  from 'ionic-angular';

//...

constructor(private loadingController: LoadingController) {

}

findItems() {
  let loading = this.loadingController.create({
  content: "Finding items..."
  duration: 3000
  });

  loading.present();
  // other stuff here
}

看起来的语法已更改。以下是新语法:

import { AlertController } from 'ionic-angular';

export class MyPage {
  constructor(private alertController: AlertController){
  }

  showAlert() {
    let alert = this.alertController.create({
      title: 'New Friend!',
      subTitle: 'Your friend, Obi wan Kenobi, just accepted your friend request!',
      buttons: ['OK']
    });
    alert.present();
  }
}

LoadingController
是在
Ionic beta 11
中引入的。我不确定OP中的代码是否使用该版本,或者他在帖子中明确表示他使用的是beta 36。根据他的评论,看起来他实际上在使用beta 10。最新版本是
beta 11
,所以可能是
cli版本
或其他版本。在其中一条评论中,用户说
ionic angular
版本是
beta 10
。您使用的是
ionic beta 11
还是以前的版本?通过查看您的
package.json
并找到类似
的“ionic angular”:“^2.0.0-beta.11”,“package.json中的
@sebaferras”,您可以看到这一点。我有:“ionic angular”:“2.0.0-beta.10”嗯,一切似乎都正常工作。你能看一下吗?@splunk你可能想更新你的帖子,以反映你正在使用beta 10。我的回答是基于你的问题中列出了beta 36。