【问题标题】:Angular select display image with each option before submitting form在提交表单之前,使用每个选项选择显示图像
【发布时间】:2016-06-10 06:07:44
【问题描述】:

更新:已解决!请在下面查看我的回答。

我正在尝试使用 Angular 中的每个选择选项显示不同的图像。当用户单击菜单中的每个选项时,菜单旁边会出现不同的图像。所有这些都是在表单提交之前。基本上试图在这个小提琴中做这里所做的事情,但是在 Angular 中:http://jsfiddle.net/treyh/xf2pq/

html:

Current image: {{myCar.url}}
<br>
<select ng-model="myCar" class="form-control">
    <option value="">Choose a car...</option>
    <option ng-repeat="car in cars" value="{{car}}" data-image = "{{car.url}}">{{car.label}}</option>
</select>

在 js 文件中,在控制器内部:

$scope.cars = [
    {url: 'Volvo.png', label: 'Volvo'}, 
    {url: 'Benz.png', label: 'Benz'}, 
    {url: 'JohnDeer.png', label: 'John Deer'}, 
    {url: 'BMW.png', label: 'BMW'}, 
];

【问题讨论】:

  • ng-src上的url绑定的html中的图片元素在哪里?
  • 我认为this question会帮助你
  • @PankajParkar 我很抱歉,但这些是不同的问题
  • @AlexMounir 我已经更新了问题,但我认为这不是正确的绑定方式
  • 您还会如何显示图像?这就是他在您给出的示例中所做的,他通过选择中的更改来更改图像元素的 src

标签: javascript html angularjs twitter-bootstrap html-select


【解决方案1】:

我已经想出了如何使用 ng-repeat 和 $Scope 来做到这一点。

在 js 文件中,在控制器内部:

$scope.cars = ['Volvo', 'Benz', 'Toyota'];

$scope.myCar = "";

var carURL = {
     Volvo: 'volvo.png',
     Benz: 'benz.png',
     Toyota: 'toyota.png'
};

$scope.getCarURL = function(brand) {
     return carURL[brand];
}

在 html 中:

<select ng-model="myCar">
    <option ng-repeat="car in cars" value="{{car}}">{{car}}</option>
</select>

<img ng-src="{{getCarUrl(myCar)}}">

【讨论】:

    【解决方案2】:

    Angular 中的选择输入起初有点令人困惑,但这里有一种设置方法。

    angular
        .module('app',[])
        .controller('AppCtrl',AppCtrl);
    
    
    function AppCtrl() {
        var vm = this;
    
        vm.car_image = null;
        vm.cars = [
            {
                'url':'audi.jpg',
                'name':'Audi'
            },
            {
                'url':'bmw.jpg',
                'name':'BMW'
            }
        ]
    }
    
    <div ng-controller="AppCtrl as ctrl">
      <select ng-model="ctrl.car_image" ng-options="c.url as c.name for c in ctrl.cars" class="form-control"></select>
      <hr>
      <img ng-src="images/{{ctrl.car_image}}" ng-show="ctrl.car_image">
    </div>
    

    使用 ng-src 可以防止页面加载时出现 404 错误。因此,当您选择所需的选项时,选择输入中的 ng-model 将应用于图像标签。

    【讨论】:

    • 有没有办法用 $scope 做到这一点?
    猜你喜欢
    • 2019-05-21
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    相关资源
    最近更新 更多