【问题标题】:ng-model with predefined select options具有预定义选择选项的 ng-model
【发布时间】:2014-06-19 14:32:45
【问题描述】:

好的,我相信这个超级简单,虽然它在逃避我。

我有一个非常简单的下拉选择菜单 - 如下所示 - 带有预定义选项。

我在我的控制器中设置$scope.qty,它正确选择了合适的<option>

但是,在我的控制器中,在 save() 函数上,当我得到 $scope.qty 的值时,我得到的是我之前设置的原始值,而不是新选择的值。

将我选择的选项绑定到模型时缺少什么?

        <select ng-model="qty">
               <option value="1">1</option>
               <option value="2">2</option>
               <option value="3">3</option>
               <option value="4">4</option>
        </select>

在我的控制器中,我设置了数量

$scope.qty = 4;

当我将选择更改为 2 时,$scope.qty 仍然等于 4。

【问题讨论】:

  • 您可以改用ng-options 指令。我相信它会按预期工作。
  • 是的,我可以,但不想将选项放在控制器中。在这种情况下,它只会是 1 到 4。
  • ngModel on select 需要 ngOptions 来处理您要完成的案例。
  • It works just fine. 可能是多个$scopes的问题。
  • @KarolisJuodelė - 好的,现在这很奇怪!我已将我的控制器剥离回与您的相同 - 但我仍然没有设置模型......

标签: javascript angularjs


【解决方案1】:

AngularJS 1.3 只允许一个可用于空值的选项元素(又名,未选中)。

您需要使用 ngOptions 约定。

以下是解释这一点的文档:
https://docs.angularjs.org/api/ng/directive/select

【讨论】:

  • 这与我的问题或示例代码并不真正相关 - 我没有 null 值并且总是选择一些东西。问题是我的选择没有被绑定到范围 - Karolis 让我在这方面朝着正确的方向前进,现在它已经得到修复,而无需在我的范围中添加不必要的对象
  • 对不起,如果我提到空值混淆了事情。我的意思是引导您使用 ngOptions 作为选项列表。我很高兴你能成功。
【解决方案2】:

您可以在ng-options 中简单地创建数组:

<select ng-options="nr for nr in [1,2,3,4]" ng-model="qty"></select> 

虽然你做的方式通常也应该有效。 ng-options 不需要 ng-model 工作。这是相反的方式。

【讨论】:

  • 该死的......这仍然在做同样的事情......我会用我的所有代码更新我的 Q......
猜你喜欢
  • 2015-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
  • 1970-01-01
  • 1970-01-01
  • 2015-05-06
相关资源
最近更新 更多