問題タブ [angularjs-controlleras]
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: $scope の代わりに this: TypeError: this.* is not a function at *
Web の登録機能を実装しようとすると、問題が発生します。
正直なところ、昨日、angularJs (および javascript について少し) についてのドキュメントを読みました + プッシュ中。だから、私にそんなに苦労しないでください:)
以下は私の指示です:
コントローラー:
その場合のサービスは次のとおりです。
最後に、問題は次のとおりです。
TypeError: this.setRegistering は registerSuccess の関数ではありません
次の行を指しています。
他のことはOKですが、これを呼び出して、登録が完了したときにプログレスサークルを非表示にしたいと思います。ここでヒントをいただけませんか。
ここで、変数のスコープで何か問題が発生したと思います。しかし、どこから始めればよいかわかりません。
angularjs - 問題の単体テスト controllerAs: ロギング コントローラーが promise を返す
controllerAs 構文を使用するコントローラーをテストしようとしています。私の問題は、コントローラーで関数をテストしようとすると、「未定義であると予想されます」というメッセージが表示されることです。
コントローラー(短縮版)
テスト
テストを実行すると、次の出力が得られます。
「カルマ:ユニット」(カルマ) タスクの実行 PhantomJS 1.9.8 (Mac OS X 0.0.0) ログ:「警告: angular を複数回ロードしようとしました。」
ログ: Promise{$$state: Object{status: 2, value: Error{message: ...}}} PhantomJS 1.9.8 (Mac OS X 0.0.0) PreflightCtrl には、verifyDob という関数が定義されている必要があります。定義されます。/Users/tracy/Projects/LemonaidClinic/src/views/preflight/preflight.controller.spec.js:80 で、PhantomJS 1.9.8 (Mac OS X 0.0.0) PreflightCtrl は DOB FAILED TypeError を検証する必要があります: 'undefined' はありません/Users/tracy/Projects/LemonaidClinic/src/views/preflight/preflight.controller.spec.js:85 PhantomJS 1.9.8 ( Mac OS X 0.0.0): 15 のうち 15 を実行 (2 失敗) (0.006 秒 / 0.204 秒) 警告: タスク "karma:unit" が失敗しました。--force を使用して続行します。
警告のため中止されました。
行 80 は次の行です。
85 行目は次のとおりです。 PreflightCtrl.form.dob = '01/01/1990';
最初の行がコントローラーのログであることがわかります。これは、必要な関数や変数がコントローラーにないことを意味する promise を返します。
Angular が複数回ロードしようとしている理由もわかりませんが、他のテストには影響していないようです。
私は何を間違っていますか?
前もって感謝します。
javascript - controllerAs 構文とプロトタイプの継承を使用して Angular コントローラーを拡張する
conrollerAs 構文を使用してコントローラーを拡張しようとしています。親コントローラーと子コントローラーが同じスコープで定義されていないため、親コントローラー ( BaseController
) をサービスに配置します。
次に、次のように使用します。
ChildController
uiルーター状態で使用しています。状態テンプレートが読み込まれず、コンソールに次のエラーが表示されます。
Resource for page controller is not defined <div class="ng-scope" ui-view="foo-view">
何か案は?
javascript - AngularJS $scope と Controller as syntax に違いはありませんか?
私はangularJSを学んでいますが、学習中にコントローラーの構文がはるかに読みやすくなり、オブジェクト指向の世界から来た私にとっては少し理解しやすくなりました。私はいくつかの記事と SO の回答を読みましたが、それらはすべて $scope と 'controller as' 構文が同じであり、'controller as' 構文は単なる構文糖衣であることを示しているようです。
ただし、SO hereに別の質問を投稿しました。質問に答えたユーザーは、コントローラーを構文として使用しているにもかかわらず、「ui select」ディレクティブを使用するには $scope を注入する必要があると言っています。それはどれですか?$scope を使用する必要がない場合、「コントローラーとして」構文を ui-select で動作させるには何が欠けていますか?
javascript - $scope データをコントローラーからビューに渡す
ビューに値を表示したい($scope.predicate
タグ内)。式の使用が機能していないようです。$scope.reverse
<p>
{{ }}
app.js:
HTML:
javascript - controllerAs を使用する Angular JS と、スコープまたはこの変数を使用したこの構文
私がいつも遭遇する問題があり、その結果、コントローラーのスコープ変数の定義と矛盾します。
お気づきかもしれませんが、controllerAs構文を使用すると、以下に示すように、コントローラー関数内のこのインスタンスにすべての変数をアタッチする必要があります。
ここでの問題は、this.translatefDromServiceを、コントローラーではなく新しい関数のインスタンスとして受け取るため、サービスの成功関数またはエラー関数、または実際には他の関数から更新できないことです。
そのようなシナリオで何ができるか。
これをvmにタグ付けする1つのソリューションを使用しました。 var vm = これはコントローラーの先頭にありますが、これ以外に解決策はありますか?
乾杯!
angularjs - (Angular) コントローラーのインスタンスを渡してスコープを分離する
以下のコードは「機能」していますが、間違いなく非常に間違っているように感じます。リファクタリングする「ベストプラクティス」の方法はありますか? 問題は、コントローラーのインスタンスをisolateスコープディレクティブに渡していることです
(注:ディレクティブではこれを使用できません:
コントローラー: 'ViewController', controllerAs: 'viewCtrl',
コントローラーの同じインスタンスが必要なため..)
そもそもこれを正しく設定していなかったのかもしれませんが、これを「リファクタリング」する良い方法があるかどうか知りたいです
UI ルーター構成:
指令
angularjs - AngularJS: オブジェクトを反復処理するときにコードが機能しない
テンプレートemployee
のコントローラーからオブジェクトのリストを作成しようとしています。empctrl
コントローラーは次のとおりです。
ただし、私が書いたこのコードは機能しません。
UI には何も表示されません。
代わりに$scope.employees
、コントローラーに書き込むと、次のように機能します。
$scope.<everything>
コントローラーで行うのがいかに魅力的であるかを知っているので$scope
、できるだけ使用しないようにしています。
誰かが and の適切な使用法と違いを示すことができれば( $scope
whereはコントローラーのエイリアスです)、感謝します。alias.abc
$scope.abc
alias
編集:まったく同じ質問です: 'this' vs $scope in AngularJS controllers
このリンクをありがとう、PankajParkar。