したがって、JSON ファイルを使用して動的に構築されるラジオ ボタンのグループがあります。JSON ファイルには、(画像の) URL、代替テキストなどが含まれます。
私はそれをかなりうまく機能させており、選択したラジオボタンの値に基づいて img src の値を変更できます。ただし、選択した要素に応じて画像の代替テキストを設定できるように、json オブジェクトの他の要素にもアクセスする必要がある場合はどうでしょうか。
ここまでの基本的な機能のplunkrは次のとおりです...
http://plnkr.co/edit/bI4ggTNCPSq3o1Bt6gqg?p=preview
JSON オブジェクトは次のようになります。
{
"header_images" : [
{
"id" : "havoc-header",
"alt" : "Some alt text",
"fname" : "admissions-general-havoc-header.jpg",
"url" : "email-assets/header-images/admissions-general-havoc-header.jpg"
},
{
"id" : "cob-header",
"alt" : "Some more alt text",
"fname" : "cob-banner.jpg",
"url" : "email-assets/header-images/cob-banner.jpg"
},
{
"id" : "css-header",
"alt" : "still some more alt text",
"fname" : "css-banner.jpg",
"url" : "email-assets/header-images/css-banner.jpg"
},
{
"id" : "huns-header",
"alt" : "one more alt-text",
"fname" : "huns-banner.jpg",
"url" : "email-assets/header-images/huns-banner.jpg"
}
]
}
ラジオ ボタンは次のようにビューに組み込まれています。
<label ng-repeat="header in assets.header_images">
<input type="radio" ng-model="assets.headerimage" value="{{header.url}}" id="{{header.id}}" data-alt="{{header.alt}}" />
{{header.url}}
</label>
そして、私のコントローラーは次のようになります。
function MainCtrl($scope, $http) {
$http.get('js/assets.json').then(function(res){
$scope.assets = res.data;
});
}
したがって、基本的にラジオボタンをクリックすると、ng-repeat の外側にあるこれを入力したいと思います。
<img src="{{assets.headerimage}}" alt="{{alt}}" />
src 属性は簡単です。正常に動作しています...動的ラジオ ボタンの 1 つがオンになっているとわかるように、値が assets.headerimage バインディングに追加されます。しかし、適切な代替テキストを設定するにはどうすればよいでしょうか?
これは本当に簡単だと確信していますが、何らかの理由で頭を悩ませることができません。私はangularjsに比較的慣れていないので、優しくしてください:D