angularjs - 为什么我的 ng-options 不设置默认值?

标签 angularjs

我有一个 Angular Controller ,如下所示;

controllers.controller('editCodeReviewCtrl', ($scope, $rootScope, $modalInstance, User, reviewRequestId, reviewRequestDetail, reviewRequestValue, reviewRequestTitle) -> 
  console.log "reviewRequestvalue", reviewRequestValue
  $scope.reviewRequest = {}
  $scope.reviewRequest.id = reviewRequestId
  $scope.reviewRequest.detail = reviewRequestDetail
  $scope.reviewRequest.value = '25.0'
  $scope.reviewRequest.title = reviewRequestTitle
  $scope.values = [
    {value: '10.0'},
    {value: '25.0'},
    {value: '50.0'} ]
)

我的 View 模板如下所示;

    <select ng-model="reviewRequest.value" ng-options="ele.value for ele in values" name="value" required class="friendly-margin pull-right">
    </select>

我希望我的下拉菜单设置默认值,在此处的示例中,它应该设置为“25.0”,但我没有在浏览器中观察到该行为。

注意正在输出的 html

<select ng-model="reviewRequest.value" ng-options="ele.value for ele in values" name="value" required="" class="friendly-margin pull-right ng-pristine ng-valid ng-valid-required ng-touched">
<option value="?" selected="selected" label=""></option>
<option value="0" label="10.0">10.0</option>
<option value="1" label="25.0">25.0</option>
<option value="2" label="50.0">50.0</option>
</select>

这次调试该朝什么方向走?

我也看过这篇文章,how to use ng-option to set default value of select element这看起来与我编写自己的代码的方式一致。

最佳答案

the documentation解释说,当您使用诸如

之类的表达式时
label for value in array

选择框中显示的是label,与ngModel绑定(bind)的是value。所以,在你的表达中:

ng-model="reviewRequest.value" ng-options="ele.value for ele in values"

ele 是值数组中的对象之一。如果您希望对象 {value: '25.0'} 成为选择框中选定的对象,则您的 ngModel 应该是对此对象的引用(而不是相等的副本!):

因此您的 Controller 应将 reviewRequest.value 设置为 $scope.values[1]

或者,如果您希望 ngModel 包含字符串 25.0 而不是包含此值的对象,则表达式应为

ng-options="ele.value as ele.value for ele in values"

关于angularjs - 为什么我的 ng-options 不设置默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28315597/

相关文章:

javascript - AngularJS 可以在没有任何服务器端技术的情况下将文件保存/写入到服务器吗?

javascript - 无法将按钮的 HTML 传递给 Angular ng-click 函数

javascript - Uncaught ReferenceError : angular is not defined.(新手发布)

javascript - jQuery Joyride 和 AngularJS 实现

javascript - 在 angularjs 中显示聚合列表

unit-testing - 如何使用 mock $httpBackend 来测试错误分支

angularjs - 使用 AngularJS 选择带有语义 UI 下拉菜单的 ng-options

javascript - Angularjs:指令加载顺序

html - 在 AngularJS Html 中渲染 Razor 变量

javascript - AngularJS:ng-click for ng-repeat 一次获取所有数据