【问题标题】:AngularJS Select Initial Value Not SelectingAngularJS选择初始值不选择
【发布时间】:2015-01-27 00:54:11
【问题描述】:

我正在使用带有以下数据和范围代码(如下)的 HTML 选择。我无法从范围数据中获取要在选择列表中选择的初始值。有人可以指出我在搞砸什么吗?

   $scope.hourOptions = [
            { value:'0',  key: '12AM'},
            { value:'3600',  key: '1AM'},
            { value:'7200',  key: '2AM'},
            { value:'10800',  key: '3AM'},
            { value:'14400',  key: '4AM'},
            { value:'18000',  key: '5AM'},
            { value:'21600',  key: '6AM'},
            { value:'25200',  key: '7AM'},
            { value:'28800',  key: '8AM'},
            { value:'32400',  key: '9AM'},
            { value:'36000', key: '10AM'},
            { value:'39600', key: '11AM'},
            { value:'43200', key: '12AM'},
            { value:'46800', key: '1PM'},
            { value:'50400', key: '2PM'},
            { value:'54000', key: '3PM'},
            { value:'57600', key: '4PM'},
            { value:'61200', key: '5PM'},
            { value:'64800', key: '6PM'},
            { value:'68400', key: '7PM'},
            { value:'72000', key: '8PM'},
            { value:'75600', key: '9PM'},
            { value:'79200', key: '10PM'},
            { value:'82800', key: '11PM'}
        ];

这是风景

<select id="timeOfDay" class="form-control"
        data-ng-options="option.value as option.key for option in hourOptions"
        data-ng-model="topic.timeOfDay"
        required
        ></select>

$scope.topic 值设置为 72000,如下所示:

$scope.topic.timeOfDay = 72000;

我尝试将其更改为 data-ng-init 中的字符串,但无济于事。无论我做什么,我都无法获得在选择列表中选择自身的初始值。有任何想法吗?

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    由于option.value 是数值的字符串表示形式,因此您也必须提供 ng-model 值作为字符串。并在控制器中对其进行初始化,而不是使用ng-init 进行初始化(虽然它不会引起问题,但只是像这样使用它来初始化并不是一个好的模式)

    试试:

    $scope.timeOfDay = '72000';
    

    您可能打算将 ng-model 设置为 data-ng-model="timeOfDay",反之亦然。

    Plnkr

    【讨论】:

    • 这就是问题所在。出于某种原因,ng-init 没有做任何事情(尽管我认为它会做)。将它设置为控制器中的字符串就可以了。我更新了我的代码示例以使其正确(范围设置有错字)。谢谢!
    • @DonnFelker 欢迎您。 ng-init 表达式没有被监视,并且您没有在 ng-init 中显式使用$scope,范围是隐含的。但是,正如官方文档所说,在 ng-init 中进行初始化并不是一件好事。
    • 很好的笔记。再次感谢您!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 2016-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-21
    • 2015-09-04
    相关资源
    最近更新 更多