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。