問題タブ [ngresource]
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.
javascript - コントローラーとディレクティブで $resource ベースのデータ モデルを使用する
次のようなプロジェクト データの「モデル」* を作成しました。
ルーティングで使用する wait-until-everything-has-loaded-before-displaying-anything 動作は必要ありません。代わりに、準備ができたら UI とデータをポップアップさせて喜んでいます。resolve
$scope
コントローラーにプロジェクト データがあればいいのですが、 dataではなくpromiseprojectModel
を返すため、次のようにする必要があります。
データはディレクティブでレンダリングされますが、ディレクティブのlink
メソッド$scope.project
が設定される前に実行されるため、時間内にレンダリングするデータがありません。projectModel
ディレクティブへの依存関係として含めることもできますが、それは汚いと感じます。
ディレクティブがプロジェクト データにアクセスできるようにする正しい方法は何ですか?
*おまけの質問: から$resource
派生したサービスを MVC モデルと見なすべきですか、それともわかりにくいですか? はいの場合、ヘルパーメソッドなどでモデルを拡張する最良の方法は何ですか?
angularjs - AppGyver と AngularJS の $http.get がステータス コード 0 で失敗する
最近、AppGyver と AngularJS を使ったアプリを試し始めました。http://academy.appgyver.com/courses/15/lessons/35に記載されているように、Angular リソース (ng-resource) を追加しました。$http.get を使用して、エラー メッセージが空白でステータスが 0 の URL からデータを取得しようとしました。XMLHttpRequest を使用すると、データは正しく取得されますが、$http では取得されません。
誰かがこの問題に光を当てたり、この動作を利用するサンプルアプリを教えてくれたりできますか.
javascript - 変更された値のみをパッチする JS Persistence ライブラリ
JS 永続化ライブラリを評価しています。私は Angular スタックを使用しているため、ngResource と Restangular はオプションですが、Breeze と Backbone のモデル/コレクションも同様であり、他の人にも開かれています。
PATCH
モデルへの変更を監視し、変更されたプロパティのみを実行する JS 永続ライブラリはありますか?
例:
これはデフォルトの実装であるように思われますが、これらのライブラリのどれもそれを行っていないことがわかりました。
Backbone のモデルは、モデルの新しさに基づいて、POST
またはそれに基づいて決定するかどうかを決定します (私が思い出したように、id の存在によって決定されます)。PUT
これは素晴らしい動きであり、 を含めるように拡張できると思いますPATCH
。
Restangular などには.patch()
メソッドがあることは理解していますが、すべての場合においてオブジェクトのパーシャルを明示的に指定する必要があると思います。
これを行うライブラリはありますか?
angularjs - responseErrorインターセプターを使用してngResourceで元のリソースを取得するにはどうすればよいですか?
ngResource で元の (送信前) データと新しい (送信後) データのキャッシュを実行しています。$resource
と にインターセプターを使用しresponse
ていresponseError
ます。
問題は次のとおりです。response
では、引数にプロパティresource
があり、リソースを操作してから呼び出し元に戻すことができます。
ではresponseError
、そのようなプロパティはありません。リソースを操作するにはどうすればよいですか?
コードサンプル:
angularjs - resource.$save: "TypeError: Object # を呼び出した後の AngualrJS クライアント エラーメソッド 'push' がありません"
私はAngularJSアプリケーションに取り組んでいます。私はAngularJSを初めて使用しています...
すべてが正常に機能します (データの読み込み、既存のレコードの変更の保存、削除)。問題は、REST サービスから返された JSON データでクライアント側モデルを更新することです。サーバー側のコードが正しく実行され、DB の変更が適用されます。
例: 次の方法でクライアント側モデルに新しいレコードを挿入します。
サーバー側には、ID フィールドに -1 (INSERT new) が含まれているか、0 より大きい整数 (UPDATE が存在する) が含まれているかを区別する PHP REST サービスがあります。
REST が NEW id とその他の調整されたフィールドを含む新しいレコードを正しい JSON 形式でクライアントに返す場合、AngularJS はそれを理解せず、ブラウザ コンソールに上記のエラー メッセージを送信します。
私のサービスは次のようになります (isArray 属性を true/false に変更してみました - 同じエラー):
保存を行うコントローラーのコード スニペットは次のとおりです。
ページ全体をリロードせずに新しいレコードの挿入を管理し、サーバーからの実際のデータでクライアントを更新する方法を教えてください。私が本当にやりたいことは、REST サービスから実際のデータを返し、新しいデータでクライアント モデル レコードを更新することです。UPDATE と INSERT の両方の場合です。空の JSON 以外を返すと、エラーが送信されます。
サーバー側のコードはうまく機能し、正しいデータを返すので、問題はクライアント側にあるに違いないと思います。
ありがとうございました。
javascript - 複数のコントローラから 1 つのビューのみを使用して、ngresource でファクトリ サービスを作成する
/ *ハブロ・エスパニョール* /
1-私はこのjsonを持っています:
2-私はこのルートを持っています:
3-私はこのサービスを持っています:
4-私はこのコントローラーを持っています
5-私はこの部分を持っています:
私が必要としているのは、pizzarra の URL と dirgeneral の URL をバインドするために同じビューを使用することです。<tr ng-repeat="dir in datos.pizarra | filter: query | orderBy: orden">
またはを配置するさまざまなビューでそれを行うことは知っています<tr ng-repeat="dir in datos.dirgeneral | filter: query | orderBy: orden">
が、コントローラーのようなデータをフィルターしようとすると$rootScope.datos = data.pizarra;
、必要なデータがバインドされません。コントローラーに console.log(data); を入れると、次に、firebug を調べると、受け取ったデータは次のとおりです:f { $promise={...}, $resolved=false, $get=function(), más...}
なぜ f? そして私がそれをクリックすると:
angularjs - AngularJS factory を使用して、$resource を使用して Google Distance API に接続する
$resource を使用してファクトリを作成し、Google の距離 API ( https://developers.google.com/maps/documentation/distancematrix/ )から距離情報を取得したいと考えています。
シンプルなサービスを機能させるために、パラメーターを削除しました..
これが私の現在のコードです:
そしてそれを呼び出す:
次のものが返されることを期待しています。
ただし、404 応答が返されます。
Google api を次のように交換した場合 ( http://api.geonames.org/postalCodeLookupJSON )。次に、そのサイトから期待される応答を取得します。
Google の URL がブラウザから取得した結果を返さない理由を誰か教えてもらえますか?
javascript - AngularJS を使用した ngResource get() 検索による入力のバインディング
サードパーティの API にクエリを実行する小さなコードがあります。これですか:
HTML 側では、現在、1 つの特定の検索に基づいて、li に ng-repeat を使用して UL を表示しています。そのようです:
私の質問は、内部に書かれたテキストを検索クエリにバインドする入力フィールドを作成するにはどうすればよいですか? 文字列を ?=string に導入するように:
何かご意見は?
ありがとう!エリック