所以我有一组使用 JSON 文件动态构建的单选按钮。JSON 文件包含 url(图像的)、替代文本等内容。
我让它工作得很好,并且可以根据所选单选按钮的值更改 img src 的值。但是,如果我还需要访问 json 对象的其他元素,以便我可以根据所选元素设置图像的 alt 文本,该怎么办。
这是我到目前为止所拥有的基本功能的一个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 属性很简单。我的工作正常...如您所见,当检查一个动态无线电按钮时,该值将添加到资产中。但是,我将如何设置适当的替代文本?
我确信这真的很容易,但由于某种原因我无法理解它。我对 angularjs 比较陌生,所以要温柔:D