ng-model for select with defined options

时间:2016-03-14 06:51:18

标签: javascript angularjs

我的角度应用程序中有一个简单的选择控件。当页面加载时,我没有在选择控件中选择任何元素,但如果我检查 $ scope.data.Method 我在int中得到了正确的值。有没有办法解决这个问题?

<div class="form-group">
    <label class="col-sm-3 control-label">Selected Method:</label>
    <div class="col-sm-4">
        <select class="form-control" ng-model="data.Method">
            <option value="0">Auction</option>
            <option value="1">Delivery</option>
            <option value="2">Range Delivery</option>
            <option value="3">Broadcast</option>
            <option value="4">Self broadcast</option>
            <option value="5">Manual</option>
            <option value="6">Automated</option>
        </select>
    </div>
</div>

Controlers使用服务来获取数据。这是获取数据的服务代码

//Initialize Resource
        this.initResource = function (params) {
            params = params || {};
            params.id = '@id';

            this.resource = $resource('{0}/:id'.format(this.api), params, {
                'update': { method: 'POST' },
                'create': { method: 'PUT' },
                'default': { method: 'GET', params: { id: 'default' } }
            });
        }
//...more code
//Get some data and initialize additional parameters
        this.read = function (id, clone, readonly, version) {
            if (clone == undefined)
                clone = false;

            if (readonly == undefined)
                readonly = false;

            if (this.resource == null) {
                this.initResourceByDefault();
            }

            return this.resource.get({ id: id, clone: clone, readonly: readonly, version: version });
        }

控制器代码

function ItemController($scope, $route, $routeParams, $location, $resource, MainCRUDService, ControllerHelper) {
    $scope.noticeType = $routeParams.noticeType;

    MainCRUDService.initResource({ noticeType: $scope.noticeType });
    //Here I am getting data from resourse via service  
    ControllerHelper.initCRUD($scope, MainCRUDService);
}

1 个答案:

答案 0 :(得分:2)

由于我能理解您的问题,因此您的服务将data.Method作为整数值返回。

但是选择框将匹配字符串值。

如果您的服务将data.Method作为字符串返回,您的问题就会得到解决。您也可以使用data.Method方法将响应参数toString()转换为字符串值。

这是一个可以帮助您的plunker代码。 https://plnkr.co/edit/s0Wrk4?p=preview