問題タブ [amber-smalltalk]
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.
smalltalk - 現在のタイムゾーンを取得する
Pharo または Amber Smalltalk で現在のタイムゾーンを取得するにはどうすればよいですか?
(また、何らかの方法で画像を検査することで、この情報を自分で見つける方法についても興味があります。通常は行われます。ここでは、Smalltalk の初心者です。)
json - アンバーとローカルストレージ、asJSON?
Amber (オンライン IDE ) で OrderedCollection を Web ブラウザーの localStorage に保存し、後で取得したいと考えています。
テスト データ オブジェクトの作成
テスト データ オブジェクトを localStorage に保存する
localStorage は、ブラウザーのキーと値のストアです。値は文字列でなければなりません。
保存された値を取り戻す
以下のprintIt
与える
これは JSON 文字列です。
OrderedCollection collを取得するにはどうすればよい ですか?
ブラウザーに組み込まれている JSON パーサーを使用する
プリントの結果は
と
は
配列の 3 番目の要素
です
質問
任意の JSON オブジェクト (JavaScript 配列とオブジェクト、OrderedCollection と HashedCollection、Smalltalk の辞書を含む) の Smalltalk 表現を取得するにはどうすればよいですか?
ノート
JSON は、次の 2 つの構造で構築されています。
- 名前と値のペアのコレクション。さまざまな言語で、これはオブジェクト、辞書、ハッシュ テーブル、または連想配列として実現されます。
- 値の順序付きリスト。多くの言語では、これは配列、リスト、またはシーケンスとして実現されます。
smalltalk - bowerで非Amberライブラリを追加するには? (例えばjsの処理)
プロジェクトを開始してamber init
からbower install processing --save
、processing.jsを追加しました。で初期化を行います
このメソッドはインスタンス メソッドによって呼び出され、initialize
Amber v0.13 より前のバージョンで機能しました。
Amber 0.13 および 0.14 で Processing.js を初期化するにはどうすればよいですか?
例のコードはこちら
Herbyによる回答後の追加
バージョン 0.13 および 0.14 では、構成ファイルprocessing.amd.json
を手動でルート ディレクトリに追加する必要があります。libraryname.amd.json
ライブラリのライブラリ ディレクトリにファイルがない場合は、プロジェクトのルート ディレクトリにあるファイルが必要ですlocal.amd.json
。
libraryname.amd.json
Amber Smalltalk および Helios からのファイルの例は次のとおりです。
プロジェクト琥珀; ファイル jquery.amd.json
プロジェクト琥珀; ファイル es5-shim.amd.json
プロジェクトヘリオス; ファイル showdown.amd.json
プロジェクト: https://github.com/hhzl/Amber-snapsvg-demo ファイル: snap.svg.amd.json
参考文献
質問
processing.amd.json
このライブラリ マッピング ファイルの何が問題になっていますか?
注processing.amd.json
実行中の変更後grunt devel
smalltalk - フォームのすべてのフィールドの値を取得するにはどうすればよいですか?
クライアント側のAmberソリューションに、このようなHTMLフォームがあります
質問
フィールド名をキー、テキスト コンテンツを値として、フィールドの内容を Amber ディクショナリに入れるために、フォームのすべてのフィールドを反復処理するにはどうすればよいですか?
Stephen-Eggermont と MKroenert による回答後の新しいバージョンの質問
フォームのすべてのフィールドの値を取得して、フィールド名をキー、テキスト コンテンツを値として Amber ディクショナリに入れるにはどうすればよいですか?
または、フォームを作成して値を取得する慣用的な方法はありますか?
注: 読みやすくするために、Amber コードを使用してフォームを作成することもできます。
参考文献
- https://github.com/amber-smalltalk/amber/wiki/FAQ#how-do-i-get-the-text-value-of-an-input-field
- http://api.jquery.com/each/
回答後に編集: FileIn コード
MKroenert が提供する回答は正常に機能します
以下は私がテストした彼のコードです。ワークスペースに直接ファイルすることができます
dictionary - アソシエーションのコレクションと Smalltalk の辞書の違いは何ですか?
IPrintIt
の場合、「白」になります。「asDictionary」を削除しても、「白」のままです。辞書には何があり、連想のコレクションには何がありませんか?
smalltalk - Pharo Smalltalk - オブジェクトがインスタンス化された後、スーパーを他のインスタンスに割り当てることは可能ですか?
以下の例のクラス階層を持つoneInstance
and secondInstance
、 ofSomeClass
および oneがあるとします。OtherClass
実行時に oneInstance を変更して、「スーパー」メッセージが secondInstance に到達するように送信することは可能ですか?
oneInstance と secondInstanceがマージされ、基本的に oneInstance が 1 つのオブジェクトであるかのように機能し、構造は次のようなものからインスタンス化されたかのように見えます。
super := secondInstance
最も簡単なのは、oneInstance に少し割り当ててから元に戻すことができる場合です:D
PS。基本的に、「スーパー」であるため、oneInstance を再クラス化します。これは、oneInstance が Object からサブクラス化され、他の状態ではなく、独自のものであると仮定して、両方の状態を持つ 1 つのオブジェクトです。ほとんどの場合、継承チェーンのデフォルト メソッド ルックアップを有利に使用するためのハックです。私が見つけることができる最も近いものは、オブジェクトのスライスですhttps://en.wikipedia.org/wiki/Object_slicing
別の見方をすると、次のようになります。
secondInstance はメッセージを受信しています。これは OtherClass のインスタンスです。すべて問題ありません。受信するメッセージの一部は OtherClass にないため、メソッド ルックアップは継承チェーンを SomethingClass に移動し、次に Object、ProtoObject などに移動し、最後に他のインスタンスに転送する必要があります。このプロセスは完全に透過的でなければなりません。