問題タブ [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.
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() では機能しません。
simple-schema - angular2-meteor で Mongo.Collection の attachSchema プロパティが見つかりません
ここに私の問題があります:
simple-schema の力を利用して、次のスキーマに対して挿入をチェックできるようにしたいと考えています。
なんらかの理由で無視します。SimpleSchema が適切にインスタンス化されているように見えても、Mongo.Collection で attachSchema プロパティを使用できません。
これが私のコードです:
ここに私のエラーメッセージがあります:
プロパティ「attachSchema」はタイプ「Collection<{}>」に存在しません。
TypeError: repo_collection.attachSchema は関数ではありません
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 のコードが見つかりませんでした。.meteor
npm_modules
meteor GitHubも調べましたが、彼らが持っているSession.jsファイルにはドキュメントしか含まれていません
このようなことを行う方法についての入力はいいでしょう
アップデート:
accounts-base-client-side パッケージを調べたところ、スクリプトを使用して自動生成されていることがわかったので、現在、このスクリプトを accounts-base ではなく Session で動作するように調整しようとしています。私の試みはhttps://github.com/AwsmOli/session-client-sideにあります。
まだ作業中ですが、すぐに動作するようにする必要があります
更新 2:
私の答えを見てください、私のセッションクライアント側は今働いています:)
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() コードが実行されているようです。私は開発を続けていますが、エラーを取り除くための解決策をいただければ幸いです。
angular - Angular 2 で条件に基づいて特定のルートにリダイレクトする方法。
angular2-meteor アプリを 1 つ作成しています。
LoginComponent を使用してアプリにログインすると、3 つの子コンポーネントを持つ TemplateComponent に移動します
- ダッシュボード
- csvタイムライン
- csvjson
これで、デフォルトで、ダッシュボード コンポーネントに redirectTo を設定しました。しかし、このリダイレクトの代わりに、ログイン ユーザー プロファイルに基づいて csvjson コンポーネントまたは csvtimeline コンポーネントにリダイレクトしたいと考えています。
仮定する
ログイン ユーザーが「管理者」の場合は、redirectTo - > ダッシュボード コンポーネントにする必要があります。
ログイン ユーザーが「Guest」の場合は、redirectTo である必要があります - > csvjson コンポーネント
リダイレクト用のダッシュボード コンポーネントの ngOnInit() でこれを実行できることはわかっています。
しかし、私はより良いオプションを探しているので、毎回ダッシュボード コンポーネントを開く必要はなく、csvjson コンポーネントに直接移動します。
angular2-meteor - Angular 2/Meteor で InjectUser を待つ
次のように単純なコンポーネントをセットアップしました。
this.user
ログインしたユーザーの情報が含まれていると思います。ロードされた後続のすべてのコンポーネントで機能しますが、ロードされた最初のコンポーネントthis.user
はundefined
コンポーネントが初期化される前に、ユーザーデータが事前に入力されるようにしたいと思います。そうすれば、すべてのコンポーネントで同じサブスクリプション コードを使用する必要がなくなります。どうすればいいですか?