問題タブ [computed-properties]
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.
swift - Swiftの遅延変数は複数回計算されますか?
Swiftの遅延変数は複数回計算されますか? 私は彼らが次のものを置き換えたという印象を受けました:
Objective-C のパラダイム (遅延インスタンス化)。
それが彼らの仕事ですか?基本的に、アプリが最初に変数を要求したときに一度だけ呼び出され、計算されたものを返すだけですか?
それとも、通常の計算されたプロパティのように毎回呼び出されますか?
私が尋ねる理由は、基本的に、他のインスタンス変数にアクセスできる Swift の計算されたプロパティが必要だからです。「fullName」という変数があり、それが単に連結されfirstName
、lastName
. Swiftでそれを行うにはどうすればよいですか? 通常の計算された変数(非遅延)では他のインスタンス変数にアクセスできないため、遅延変数が唯一の方法であるようです。
だから基本的に:
Swiftの遅延変数は複数回呼び出されますか? その場合、インスタンス変数にアクセスできる計算変数を作成するにはどうすればよいですか? そうでない場合、パフォーマンス上の理由から変数を 1 回だけ計算したい場合は、どうすればよいですか?
javascript - Ember.Object の複数のプロパティまたは単一のオブザーバー
同じプロパティに依存する一連のプロパティがある場合、それらを定義する最良の (保守可能、最速など) 方法は何ですか? 私はいくつか考えることができます:
A. それぞれのプロパティ:
B. 一度にすべての小道具を設定するオブザーバー:
C. ストレートアップの計算された小道具:
(C) 間違いなく最も洗練されているように見えますが、1 つのオブザーバーに対して 3 つの計算されたプロパティを使用する場合に何らかのペナルティがあるのではないかと考えています。そして、(C) は基本的に A の省略形ですか? そこに違いはありますか?
ember.js - firstObject が削除されたときに Ember 計算プロパティがビューを更新しない
プロジェクト コメントのリストがあり、テンプレートには最新のコメントが表示され、すべてのコメントを表示するモーダルを表示するボタンが表示されます。そのモーダルでは、コメントを個別に削除できます。これは機能し、それに応じてモーダルが更新されます。最後のレコードを削除するまで、テンプレートも更新されます。
これが私の最初のプロパティの宣言です。
コントローラーにクエリを実行し、firstObject が未定義であることを確認しましたが、計算されたプロパティはまだその値を保持していました。
計算されたプロパティを @each コメントを監視するように変更すると、次のようになります。
その後、ビューは更新されますが、コンソールは醜いエラーを吐き出します:
最後のレコードが削除されたときにビューを更新するにはどうすればよいですか? または、このエラーを無視する必要がありますか?
polymer - 「計算されたプロパティ」を手動で再計算する
カスタム要素がある場合
ポリマーを変更name
すると自動的に再計算されますが、変更せずmessage
に再計算する方法はありますか?message
name
javascript - Ember.JS - 計算されたプロパティに基づいて filterBy またはフィルター処理できません
filterBy と条件 "isRoot" == true を使用して、hasMany-Array async-get の結果をフィルタリングしようとしています。「isRoot」プロパティは計算されたプロパティであり、ember の filterBy 関数は promise が解決されるのを待たないようです。ここに私のコード:
ディレクトリのモデル
ユーザー向けモデル
ディレクトリをフィルタリングするために使用しているステートメント:
私の問題の解決策を知っている人はいますか? 事前にthx!
アップデート
現在の問題を示す JSBIN を作成しました。ここに私の例へのリンクJSBINリンクがあります
javascript - 配列内の存在へのAngularバインディング、またはパフォーマンスの計算されたプロパティ
問題
角度のあるビューを配列内の特定のアイテムの存在にバインドするためのきちんとした効率的な方法があるかどうか疑問に思っています。基本的に、1 つのページに 2 つのコントローラーがあります。コントローラー A は、サービスによって挿入された配列内の項目を削除または追加できます。コントローラー A から削除または追加を行うときに、同じサービスが注入されたコントローラー B のビューを更新する必要があります。
ロブスターの問題
ロブスターの出会い系サイトを作成しているとします。2 つのビューを並べて表示します。
最もホットなロブスター ビューには、海で最もホットなロブスターのリストが表示されます。これらのロブスターのいずれかがあなたの友達である場合、そのリスト項目が強調表示され、あなたが友達であることを示すメッセージが表示されます.
ロブスター フレンド ビューは、最もホットなロブスター ビューと同じページにあります。ロブスター フレンド ビューからロブスターをフレンド解除すると (つまり、
lobsterFriend
配列からロブスターを削除する)、それに応じて最もホットなロブスター ビューが更新され、フレンド解除されたロブスターの強調表示が停止します。
多数のロブスターで機能するソリューションが必要です。
セットアップ
免責事項: この質問のコードは、説明のみを目的としています。ロブスターの出会い系サイトを実際に作成しているわけではありません。
2 つのコントローラーに挿入する角度付きサービスがあります。サービスはオブジェクトの配列を返します。
lobsterFriendService
、ロブスター フレンドを管理するためのサービス:
LobsterFriendsCtrl
、注入されたフレンドリストのコントローラーlobsterFriendService
:
HottestLobsterCtrl
、最もホットなロブスター ページのコントローラー:
hottestLobsters.html
にバインドされたビューHottestLobsterCtrl
:
可能な解決策
lobsterFriends
アレイにウォッチを設定します。更新すると、HottestLobsterCtrl
コントローラーのプロパティを更新したり、ダイジェストをトリガーしたりできます。これはかなりコストがかかると思います。- ロブスターが友達になったり、友達から外れたりするたびに、イベントを発生させます。これは、実際のオブジェクトを使用してサービスを既に挿入しているため、可能であればダウンすることを避けたいパスです。
- 計算されたプロパティを適切に処理するヘルパー ライブラリを使用します。
- ???? 助けてください?
ember.js - ember のモデル内の各アイテムの ArrayController のプロパティ
プロパティ「isChecked」(ブール値プロパティ)を持つ配列コントローラーがあります。私のコントローラーでは、「チェックされた」(つまり選択された)要素のコレクションを取得したいと考えています。モデル内のコントローラーのプロパティにアクセスする方法がわかりません。
私のコントローラーは次のとおりです。
次のように、「isChecked」プロパティを各ヘルパー内のチェックボックスにリンクしました。
モデル内のすべての項目を、関連付けられたチェックボックスとともに表示します。ユーザーはそこからいくつかの項目を選択できます。だから私はそれらのアイテムが欲しいです。
ここで、「チェック済み」の要素のリストを取得したいと思います。計算されたプロパティとして、または任意のアクションの下で。
ありがとうございました。
javascript - 動的キー名を持つReactjs setState()?
編集:これは重複しています。ここを参照してください
状態を設定するときに動的キー名を使用する例が見つかりません。これは私がやりたいことです:
event.target.id は、更新する状態キーとして使用されます。これはReactでは不可能ですか?
swift - Swift のゲッターとセッター
以下の特定のケースで Swift でセッターを使用する必要があるのはなぜですか。
「display.text」String
をに変換しようとしていDouble
ます。getter が value を戻しString
、それを variable に変換しDouble
、この値を variable に割り当てることを理解していますnewValue
。
質問:に変換したばかりなのに、display.text 値をString
再度使用して設定し直すのはなぜですか?= "\(newValue)"
Double