[解決済み] angularJS ディレクティブのスコープ分離宣言の「=?」の意味は?
質問
イコールの後のクエスチョンマークは特別な意味を持つのでしょうか。
scope: {foo: '=?'}
は「'foo'が解決できない場合はエラーを発生させない」という意味でしょうか?
どのように解決するのですか?
<ブロッククオートisolate' スコープは、親スコープから派生したローカルスコーププロパティのセットを定義するオブジェクトハッシュを取ります。これらのローカルプロパティは、テンプレートの値をエイリアスするのに便利です。ローカルスコープの定義は、ローカルスコープのプロパティをそのソースにハッシュ化したものです。
=
または
=attr
- ローカルスコープの
の値で定義された名前の親スコーププロパティとの間で双方向のバインディングを設定します。
の
attr
属性の値で定義された name の親スコーププロパティとの間の双方向バインディングを設定します。もし
attr
が指定されていない場合は
属性名はローカル名と同じであるとみなされます。与えられた
<widget my-attr="parentModel">
というウィジェットの定義があり
scope: {
localModel:'=myAttr' }
であれば、ウィジェットのスコーププロパティである
localModel
は
の値を反映します。
parentModel
の値を親スコープに反映します。への変更は
parentModel
に反映されます。
localModel
に反映され
localModel
に反映されます。
parentModel
.
もし親スコープ
プロパティが存在しない場合、それは
NON_ASSIGNABLE_MODEL_EXPRESSION 例外を投げます。この挙動を回避するには
を使って
=?
または
=?attr
を使うことで、そのプロパティをオプションとしてフラグを立てることができます。
スコーププロパティに影響を与えるすべてのダイジェストで、期待されるエラーをトリガーする必要があります。
parentSet = parentGet.assign || function() {
// reset the change, or we will throw this exception on every $digest
lastValue = scope[scopeName] = parentGet(parentScope);
throw Error(NON_ASSIGNABLE_MODEL_EXPRESSION + attrs[attrName] +
' (directive: ' + newScopeDirective.name + ')');
};
//...
if (parentValue !== scope[scopeName]) {
// we are out of sync and need to copy
if (parentValue !== lastValue) {
// parent changed and it has precedence
lastValue = scope[scopeName] = parentValue;
} else {
// if the parent can be assigned then do so
parentSet(parentScope, lastValue = scope[scopeName]);
}
}
関連
-
[解決済み] AngularJSのng-showとフェードアニメーション
-
[解決済み] AngularJS 。scope.apply()呼び出し時の$digest already in progressエラーを防ぐ。
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] AngularJSで$scope.$watchと$scope.$applyを使用するにはどうすればよいですか?
-
[解決済み] AngularJS コントローラにおける 'this' と $scope の比較
-
[解決済み】AngularJSのディレクティブスコープにおける「@」と「=」の違いは何ですか?
-
[解決済み】AngularJSのスコーププロトタイピング/プロトタイピング継承のニュアンスとは?
-
[解決済み] AngularJSで独自のスコープ*を持つカスタムディレクティブ内から親スコープにアクセスするにはどうすればよいですか?
-
[解決済み】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は、未定義のプロパティ'data'を読み取ることができません。
-
[解決済み] angularJSのSTATEを理解する
-
[解決済み] 適用がすでに進行中のエラー
-
[解決済み] Angular JS $locationChangeStart 次の url ルートオブジェクトを取得する
-
[解決済み] AngularJSでkeypressイベントを使用するには?
-
処理されない例外が発生しました。Angular 実行中のプロジェクトで NGCC に失敗しました。
-
angularjsのルーティングについて $stateと$stateParamsの話
-
[解決済み] どのように$state.goにパラメータを追加しますか?
-
[解決済み] angular.serviceとangular.factoryの比較