自动填充html选择AngularJS

时间:2016-03-16 16:56:39

标签: html angularjs

我对使用AngularJS的HTML选择有一点问题。当我向我的API请愿时,我得到一个值作为整数,但当我尝试使用它自动填充选择时,我无法正确设置de“value”。

在这张图片中,您可以看到HTML正在接收的内容以及我想要设置的值

Example of code

有没有办法施放这个值?

提前致谢:)

编辑:

控制器获取客户数据并填写表格

.controller('CustomerDetailCtrl', ['Customer', '$scope', '$sessionStorage', '$stateParams', '$ionicPopup', function (Customer, $scope, $sessionStorage, $stateParams, $ionicPopup) {
    if ($sessionStorage.auth) {
        Customer.get({data: $stateParams.customerId + '_' + $sessionStorage.user_id}).$promise.then(function (data) {
            if (data.response && $sessionStorage.role === 1) {
                $scope.customer = data.response[0];

                if (data.history) {
                    $scope.histories = data.history;
                }
            } else {
                console.log('Error de accesso...');
            }
        })
    }

    $scope.addTask = function (customer) {
        alert('add task!');
    }

    $scope.deleteTask = function (customer, history) {
        alert('delete task!');
    }
}])

表格:

<label class="item item-input item-select">
    <div class="input-label">
        Cliente avisado?
    </div>
    <select name="informed" ng-model="customer.informed" required>
        <option value="0">NO</option>
        <option value="1">SI</option>
    </select>
 </label>

这里是来自de API的数据图片: enter image description here

2 个答案:

答案 0 :(得分:0)

在控制器的某处定义默认值:$scope.customer.informed = "NO";

答案 1 :(得分:0)

我知道你已经收到了关于此问题的答案,但我想向你展示另一个不需要将数据从int更改为字符串的潜在选项。如果您在控制器中为您的选择定义选项(或者在服务中为您的应用中的多个不同位置使用此选项),那么您可以利用ng-options及其使用除a之外的值的能力字符串。

这是一个例子(显然我已经硬编了一些东西并把它们全部放在一个模块中 - 而不是你在真实应用中做的事情。)

JS:

angular.module('app', [])
.controller('ctrl', function($scope){
    // select options (if these are common maybe store them in a service
    // so you can share them in many controllers without duplicating the code)
    $scope.selectOptions = [
    {
        text: 'NO',
        value: 0
    },
    {
        text: 'SI',
        value: 1
    }];
    // sample data
    $scope.customer = {
        address: 'San Rosendo 11',
        date: '2016-03-16T16:19:13+0100',
        email: 'Montes',
        equipment: 'PC',
        id: 262,
        informed: 1,
        lastName: 'Montes',
        location: 'Tienda',
        name: 'Juanma',
        notes: '',
        pass: 'no tiene',
        phone: '900112233',
        price: '0',
        status: 'Pendiente',
        tasks: 'dfsdf'
    }; 
});

HTML:

<div ng-app='app' ng-controller='ctrl'>
    <select ng-model='customer.informed' ng-options='option.value as option.text for option in selectOptions'></select>
</div>

jsFiddle