問題タブ [angularjs-1.5]
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.
angularjs - コンポーネント ルーター (AngularJS 1.5) useAsDefault 構成
コンポーネント ルーターは初めてです。angular 1.5 で使用しています。ユーザーが config で定義されていないルートにアクセスしようとした場合に備えて、デフォルト コンポーネントを定義したいと思います。
私はこの構成のアプリコンポーネントを持っています:
およびこの構成のレイアウト コンポーネント
URL localhost:8080/#/およびlocalhost:8080/#/userにアクセスできますが、localhost:8080/#/test にアクセスしようとすると、useAsDefault が true に設定されているにもかかわらず、ホーム コンポーネントにリダイレクトされません。 (空白のページを取得します...)。
誰もこの問題に直面しましたか?
javascript - AngularJS 1.5 コンポーネントのサードパーティ非同期コールバック
AngularJS 1.5 より前のディレクティブまたはビューでは、変更がサード パーティの非同期コールバックから発行されたときに ($digest サイクルを使用して) angular によって変更が確実に取得されるようにする方法は、$scope.$apply()
呼び出しでコードを実行することでした。
私が理解している限り、コンポーネントでは$scope
、テンプレートを取り除き、コンポーネントのコントローラーにバインドするだけです。$scope に依存せずに、ビューの代わりにコンポーネントの記述に移行しようとしています。次のコードがあるとします。
ここでの問題はng-show
、コントローラーに二重にバインドされていることですが、コールバックに $scope.$apply() を使用しないと、$digest サイクルがトリガーされないため、変更が ng-show によって取得されません。コントローラーに $scope を挿入して $apply を呼び出す必要があるため、これは非常に面倒ですが、そもそも $scope に依存する目的が無効になります。
TPApi を$q
サービスでカプセル化して、コールバックが発行されたときに $digest サイクルが確実に呼び出されるようにする方法があると思います。Promise
しかし、ある時点で、代わりに新しいネイティブ API を使用するように移行したい場合はどうすればよい$q
でしょうか?
$digest をトリガーせずにこれを行うスマートな方法はありますか、または $scope と $digest のために角度 1 に本質的な欠陥がありますか?
javascript - ng-transclude でスコープを名前付きスロットに強制する
次のようなディレクティブがあります。
問題は にあり<item-template>
ます。内部が の中でバインドされている場合、 は現在反復されている項目item
の参照になります。ng-repeat
<selectable-item-list>
私の知る限り、トランスクルージョンはディレクティブのスコープを見ることができないようです。したがって、item.text
まったくないため、バインドできませんitem
。
このシナリオをどのように解決しますか? 以前は手動でトランスクルージョン<item-template>
していましたが、他のアプローチには他の欠点/問題がありました。
これは、私の実際のケースのサンプルとして機能する実行可能なコード スニペットです。
angularjs - ui-router resolve を使用した Angular 1.5 コンポーネント: 不明なプロバイダー
コントローラーをコンポーネントに変換してアプリケーションを Angular 2 用に準備する際に問題に直面していますが、移行がうまくいかないという問題があります。状態間をルーティングするための ui-router があり、いくつかのコントローラーで解決を使用しています。コントローラー付きのバージョンです。は機能していますが、コンポーネントのバージョンはまったく機能しています。多くのガイドに従いましたが、コードには適しているようですが、私には機能していません。
controllerを備えた次のモジュールがあります。
コントローラー:
上記のコードはうまく機能しますが、コンポーネントとして作成すると、次のようになります。
コンポーネント:
しかし、今では機能せず、次のエラーが表示されます。
bower.json内の私の依存関係:
何が問題なのか、何が欠けているのか分かりませんか?
javascript - コントローラでコンポーネント バインディングが定義されていないのはなぜですか?
私は単純な角度コンポーネントを書いています。パラメータをバインディングとして渡し、その値を画面に表示します。すべて正常に動作しています。パラメータが画面に表示されているのがわかります。
成分:
HTML:
ただし、コントローラー内からバインディングにアクセスしようとすると (console.log を参照)、バインディングの値はundefined
. ビューでは使用できるが、コントローラーでは使用できない方法がわかりません。
私は何を間違っていますか?
javascript - Angular 1.5、コンポーネント関数を ng-repeat の外側から呼び出していますか?
Angular 1.5 コンポーネントの学習を始めたばかりで、いくつかの新しいルールを試していますが、これについて理解できないようです:
だから私のメインで:`
runListで、コントローラーからコンポーネントアクションobj.action()を実行する方法が頭に浮かびません。
スタック オーバーフローの書式設定が正しくない場合は申し訳ありませんが、私はまだほとんど初心者です。
ps 同様の質問を読みましたが、A) html には何もなく、ng-repeat に直接関係していませんでした
質問のさらなる明確化 (必要な場合): $interval を実行するコンポーネントが、異なるコンポーネントの ng-repeated オブジェクトの関数を呼び出すにはどうすればよいでしょうか。
json - モック json ファイルをロードするための Http POST
サーバー上の API にヒットするアプリケーションがあります。しかし、サーバーはまだ開発されていないため、ローカル マシンでモック .json ファイルを使用して、クライアント側の開発 (angularjs を使用) を進めています。一部の API は、POST 要求を送信する必要があります (例: ログイン)。モック .json ファイルにヒットする POST リクエストを送信すると、400 ステータス エラーが発生します。Http Post メソッドで .json ファイルをリクエストすることはできますか?