問題タブ [angular2-meteor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
816 参照

meteor - Meteor.users.find({}) で zone() を使用する方法

angular2-meteor では、Mongo.Cursor と zone() メソッドの代わりに MongoObservable.Collection の使用を開始しました。HTMLテンプレートの非同期。ここに最新のチュートリアルのリンクがあります

現在、Meteor.users.find({}) メソッドでこの zone() メソッドを使用して、新しいユーザーが正常に作成されたときにアプリ内のすべてのユーザーを自動的に表示しようとしています。

サーバー側のコード

そしてクライアント側で私が使用した

htmlコードは

これに .zone() を適用すると、this.userlist = Meteor.users.find({}).zone();
このエラーが発生します。

zone() と | を使用しない場合 非同期の場合、すべてのユーザー リストを取得しますが、ユーザーを削除するか、新しいユーザーを作成すると、リストが自動的に更新されず、更新する必要があります。新しいコンテンツを自動レンダリングするには、ゾーンと非同期を使用する必要がありますが、Meteor.users.find() では機能しません。

0 投票する
1 に答える
1860 参照

simple-schema - angular2-meteor で Mongo.Collection の attachSchema プロパティが見つかりません

ここに私の問題があります:

simple-schema の力を利用して、次のスキーマに対して挿入をチェックできるようにしたいと考えています。

なんらかの理由で無視します。SimpleSchema が適切にインスタンス化されているように見えても、Mongo.Collection で attachSchema プロパティを使用できません。

これが私のコードです:

ここに私のエラーメッセージがあります:

プロパティ「attachSchema」はタイプ「Collection<{}>」に存在しません。

TypeError: repo_collection.attachSchema は関数ではありません

0 投票する
3 に答える
515 参照

meteor - Meteor: session-client-side

そこで、Ionic 2 CLI を使用して angular-meteor WhatsApp クローン チュートリアルの上に構築しようとしています。

このチュートリアルでは、基本的clientに meteor プロジェクト内のフォルダーを削除し、ionic プロジェクト内のmeteor-client-side パッケージを使用して meteor サーバーに接続します。

これは完全に正常に機能しますが、リアクティブパラメーターを使用して流星の出版物を購読したいと思います。

Meteor API ドキュメントを検索した後、Sessionオブジェクトを見つけました。

Session は、キーと値のペアの任意のセットを格納するために使用できるグローバル オブジェクトをクライアントに提供します。現在選択されているアイテムなどをリストに保存するために使用します。

Session の特別な点は、リアクティブであることです。テンプレート内から呼び出すと 、 が呼び出されるSession.get("currentList") たびにテンプレートが自動的に再レン​​ダリングさ  Session.set("currentList", x) れます。

Meteor サブスクライブ ドキュメントでは、次の例を見つけることができます。

これにより、現在のルームのチャット メッセージとプライベート メッセージに登録されます。Session.set("current-room", "new-room") を呼び出してルームを変更すると、Meteor は新しいルームのチャット メッセージをサブスクライブし、元のルームのチャット メッセージをサブスクライブ解除し、プライベート メッセージを引き続きサブスクライブします。 .

それはまさに私もやりたいことです。しかし、Session のドキュメントに記載されているように、session は meteor プロジェクトに追加する必要があるパッケージです。

アプリケーションにセッションを追加するには、ターミナルで次のコマンドを実行します。

私の質問ですが、meteor-client-side パッケージにセッションを追加する方法はありますか?

呼び出そうとするとSession.set()、実行時に失敗しますSession is not defined

私の推測では、 accounts-base-client-side のようなセッション機能 (基本的にはセッション クライアント側の npm パッケージ) を抽出する npm パッケージが必要になると思います。

これを行う他の方法はありますか?独自のセッションクライアント側を構築するにはどうすればよいですか?

meteor プロジェクトで実行しようとしましたが、フォルダ内meteor add sessionのどこにも Session のコードが見つかりませんでした。.meteornpm_modules

meteor GitHubも調べましたが、彼らが持っているSession.jsファイルにはドキュメントしか含まれていません

このようなことを行う方法についての入力はいいでしょう

アップデート:

accounts-base-client-side パッケージを調べたところ、スクリプトを使用して自動生成されていることがわかったので、現在、このスクリプトを accounts-base ではなく Session で動作するように調整しようとしています。私の試みはhttps://github.com/AwsmOli/session-client-sideにあります。

まだ作業中ですが、すぐに動作するようにする必要があります

更新 2:

私の答えを見てください、私のセッションクライアント側は今働いています:)

0 投票する
1 に答える
228 参照

typescript - typescript で matb33:collection-hooks を使用する

Socially チュートリアルから始めて、Angular2-Meteor アプリを作成しています。alanning:roles と matb33:collection-hooks を使用してユーザー ロールを実装しようとしています。解決策は、ここで提案されているものと同様です。唯一の違いは、Angular 2 では Roles と Collection-Hooks の typescript 定義が必要なことです。私は meteor-typescript-libs を見つけました。これには、動作しているように見える Roles の定義があります。しかし、私が見つけた collection-hooks のリソースは typed-meteor-collection-hooks だけでした。ファイルをプロジェクトにコピー/貼り付けしてindex.d.tsを参照しようとしましたが、それでも次のエラーが発生します。

server/imports/accounts.ts (30, 14): プロパティ 'after' はタイプ 'Collection < User >' に存在しません。

次の行で:

私は typescript に慣れていないので、Meteor パッケージの型定義をどのように実装すればよいかわかりません。明らかに、私のアプローチは間違っています。Meteor-Angular2 でロールとコレクション フックを使用した経験のある人はいますか?

更新: エラーにもかかわらず、ユーザーの挿入後に Meteor.users.after.insert() コードが実行されているようです。私は開発を続けていますが、エラーを取り除くための解決策をいただければ幸いです。

0 投票する
2 に答える
36826 参照

angular - Angular 2 で条件に基づいて特定のルートにリダイレクトする方法。

angular2-meteor アプリを 1 つ作成しています。

LoginComponent を使用してアプリにログインすると、3 つの子コンポーネントを持つ TemplateComponent に移動します

  • ダッシュボード
  • csvタイムライン
  • csvjson

これで、デフォルトで、ダッシュボード コンポーネントに redirectTo を設定しました。しかし、このリダイレクトの代わりに、ログイン ユーザー プロファイルに基づいて csvjson コンポーネントまたは csvtimeline コンポーネントにリダイレクトしたいと考えています。

仮定する

ログイン ユーザーが「管理者」の場合は、redirectTo - > ダッシュボード コンポーネントにする必要があります。

ログイン ユーザーが「Guest」の場合は、redirectTo である必要があります - > csvjson コンポーネント

リダイレクト用のダッシュボード コンポーネントの ngOnInit() でこれを実行できることはわかっています。

しかし、私はより良いオプションを探しているので、毎回ダッシュボード コンポーネントを開く必要はなく、csvjson コンポーネントに直接移動します。

0 投票する
1 に答える
206 参照

angular2-meteor - Angular 2/Meteor で InjectUser を待つ

次のように単純なコンポーネントをセットアップしました。

this.userログインしたユーザーの情報が含まれていると思います。ロードされた後続のすべてのコンポーネントで機能しますが、ロードされた最初のコンポーネントthis.userundefined

コンポーネントが初期化される前に、ユーザーデータが事前に入力されるようにしたいと思います。そうすれば、すべてのコンポーネントで同じサブスクリプション コードを使用する必要がなくなります。どうすればいいですか?