[解決済み] AngularJsの動的なスコープ変数の設定 - scope.<some_string>
2023-01-19 12:06:39
質問
からの取得した文字列があります。
routeParam
やディレクティブ属性などから取得した文字列があり、これに基づいてスコープに変数を作成したいのです。というわけで。
$scope.<the_string> = "something".
しかし、文字列が1つ以上のドットを含んでいる場合、それを分割して実際にスコープに "ドリルダウン" したいです。そこで
'foo.bar'
は次のようになります。
$scope.foo.bar
. つまり、単純なバージョンでは動作しないのです!
// This will not work as assigning variables like this will not "drill down"
// It will assign to a variables named the exact string, dots and all.
var the_string = 'life.meaning';
$scope[the_string] = 42;
console.log($scope.life.meaning); // <-- Nope! This is undefined.
console.log($scope['life.meaning']); // <-- It is in here instead!
文字列を元に変数を読み込む場合、このような動作をさせることができます。
$scope.$eval(the_string)
とすることで実現できますが、値を代入する場合はどうすればよいのでしょうか?
どのように解決するのですか?
私が発見した解決策は $parse .
"Angular式を関数に変換します"
もし誰かがより良いものを持っていたら、新しい回答を追加してください!
以下はその例です。
var the_string = 'life.meaning';
// Get the model
var model = $parse(the_string);
// Assigns a value to it
model.assign($scope, 42);
// Apply it to the scope
// $scope.$apply(); <- According to comments, this is no longer needed
console.log($scope.life.meaning); // logs 42
関連
-
処理されない例外が発生しました。Angular 実行中のプロジェクトで NGCC に失敗しました。
-
AngularJSのベストプラクティス。ng-repeatの$indexに注意する。
-
[解決済み] 関数内でグローバル変数を使用する
-
[解決済み] JavaScriptの変数のスコープとは何ですか?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] AngularJS コントローラにおける 'this' と $scope の比較
-
[解決済み】AngularJSのディレクティブスコープにおける「@」と「=」の違いは何ですか?
-
[解決済み】AngularJSのスコーププロトタイピング/プロトタイピング継承のニュアンスとは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】npm UNMET PEER DEPENDENCYの警告を修正するにはどうすればいいですか?
-
[解決済み】TypeError: window.initMap is not a function
-
[解決済み] オブジェクトと選択機能を備えたAngularJS BootstrapUI Typeahead
-
[解決済み] ag-gridの行の追加/削除
-
[解決済み] どのようにangularJSでrouteProviderとlocationProviderを設定するのですか?
-
angularでのng-repeatとtrack by
-
[解決済み] Angularjsを使用してローカルストレージにデータを保存するにはどうすればよいですか?
-
[解決済み] AngularJSのng-repeatでキーと値を反復処理する方法は?
-
[解決済み] なぜAngularJSはselectに空のオプションを含めるのですか?
-
[解決済み] ng-repeat :単一フィールドによるフィルタリング