使用angularJS从下拉列表中的模型中选择一个值

使用angularJS从下拉列表中的模型中选择一个值,angularjs,drop-down-menu,Angularjs,Drop Down Menu,我知道在stack中有类似的问题。但不同的是,我在控制器中硬编码了下拉列表的选项,然后我希望下拉列表在默认情况下显示模型中的值 HTML: <div class="form-group"> <label class="col-md-3 control-label" for="talent.rating">Rating*</label> <div

我知道在stack中有类似的问题。但不同的是,我在控制器中硬编码了下拉列表的选项,然后我希望下拉列表在默认情况下显示模型中的值

HTML:

<div class="form-group">
                            <label class="col-md-3 control-label" for="talent.rating">Rating*</label>
                            <div class="col-md-9">
                                <select ng-model="talent.rating"  validator="required" required-error-message="Rating is required" name="talent.rating" ng-options="obj.value as obj.text for obj in array"></select>
                            </div>
                        </div>
型号:

$scope.talent: Object
createdOn:    "2017-02-03T00:58:20.0999066"
employee    :    Object
fromAccount    :    Object
id    :130
inDate    :    "2017-02-01T05:30:00"
movedOutOfBench    :    false
outTill    :    "2017-05-02T05:30:00"
rating    :    2
remark    :    "asd"
resumePath    :    ""
我做错了什么?请提供修复代码。

找到解决方案

HTML:

尽管我尝试以数组中的数字形式给出值,如:

$scope.array = [{ value: 1, text: '1' }, { value: 2, text: '2' }, { value: 3, text: '3' }, { value: 4, text: '4' }, { value: 5, text: '5' }];, angular was considering it as string. Don't know why.
When inspecting from console,it was like - https://hastebin.com/ugatisazey.vbs

指令帮助我解决了这个问题。

为什么您的
ng init
表达式与
ng options
相同?我只是尝试一下,看看结果如何。对不起,我忘了把它还给你。我的代码中没有init,请您解释一下这部分-->
我希望下拉列表默认显示模型中的值
。也许一把小提琴或长毛笔会很棒……在模型中,已经有了评级的价值。在我上面分享的JSON中,它的评级为2。当我打开页面时,下拉列表显示为空,而我希望它显示模型中的值。我不知道如何创建plunker。我会留意的。很抱歉
 <select ng-model="talent.rating" convert-to-number>
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                </select>
myApp.directive('convertToNumber', function () {
    return {
        require: 'ngModel',
        link: function (scope, element, attrs, ngModel) {
            ngModel.$parsers.push(function (val) {
                return val != null ? parseInt(val, 10) : null;
            });
            ngModel.$formatters.push(function (val) {
                return val != null ? '' + val : null;
            });
        }
    };
});
$scope.array = [{ value: 1, text: '1' }, { value: 2, text: '2' }, { value: 3, text: '3' }, { value: 4, text: '4' }, { value: 5, text: '5' }];, angular was considering it as string. Don't know why.
When inspecting from console,it was like - https://hastebin.com/ugatisazey.vbs