JavaScriptオブジェクトの "未定義"メソッドにアクセスしようとすると、Elvis演算子(セーフナビゲーション演算子とも呼ばれます)がページをクラッシュさせないようになっています。アンビエント4はElvis演算子(?)を気にしません
まあ、多分私は何か間違っています。このコードを確認してください:
<ion-content padding>
<h3>"{{place?.get("placeName")}}" management</h3>
<ion-list>
<ion-item *ngFor="let visit of visitBuffer">
User: {{visit?.get("userId")}}
</ion-item>
</ion-list>
</ion-content>
(はい、これは角度4を実行する)です。
だから、各アイテムの「訪問」という各オブジェクトのuserIdを確認するだけです。問題ではありませんか?ちょうど解析データベースに照会し、いくつかのオブジェクトや配列を返す、
export class Management {
place;
visitBuffer = [];
constructor(
public navCtrl: NavController,
public navParams: NavParams
) {
const placeId = localStorage.getItem("placeId");
this.getPlace(placeId)
.then(place => {
this.place = place;
// Subscribe to normal Visits
this.subscribeVisits(placeId).then(subscription => {
let s = <any> subscription;
s.on('create', (visit) => {
this.visitBuffer.push(visit);
});
})
// Subscribe to GroupVisits
this.subscribeGroupVisits(placeId).then(subscription => {
let s = <any> subscription;
s.on('create', (visit) => {
this.visitBuffer.push(visit);
});
})
})
}
あなたがそこに見る方法:私は2つの異なる、並列クエリでvisitBufferのすべての情報をロードし、コンストラクタでその実行。彼らはオブジェクトを "visitBuffer"にプッシュし、配列に.map関数を適用するだけで、以前のものと同じ "visitBuffer"配列にデータを再配置します。これは、2つの類似したオブジェクト(VisitsとVisitGroups)が同じ配列に入力されるように使用されます。私はそれらを同じ視点で扱うためです。
私はParseメソッド ".get(property)"を取得しようとしているので、オブジェクトの両方の型が持っているプロパティusedIdを取得できます。私はエルヴィスの演算子を使っていますが...とにかくエラーを投げます:
VM1194 Management.ngfactory.js:13 ERROR TypeError: _v.context.$implicit.get is not a function
at Object.eval [as updateRenderer] (VM174 Management.ngfactory.js:15)
at Object.debugUpdateRenderer [as updateRenderer] (VM82 vendor.js:13488)
at checkAndUpdateView (VM82 vendor.js:12632)
at callViewAction (VM82 vendor.js:12995)
at execEmbeddedViewsAction (VM82 vendor.js:12953)
at checkAndUpdateView (VM82 vendor.js:12628)
at callViewAction (VM82 vendor.js:12995)
at execComponentViewsAction (VM82 vendor.js:12927)
at checkAndUpdateView (VM82 vendor.js:12633)
at callViewAction (VM82 vendor.js:12995)
私は何か間違っていますか?なぜelvis演算子を使用しているとビューがクラッシュするのですか?
実際に 'place 'とは何ですか?このエラーは、 'place'のための' get'メソッドが存在しないことをさらに指しています。 'place'は"単なる変数 "なので正しいでしょう。 – Alex
@ AJT_82 placeオブジェクトで失敗は起こっていませんが、visitBufferオブジェクトを使用しています – Zerok
さて、 'visit'は何ですか?それは "あまりにも変わった"と思われますか? – Alex