【问题标题】:Angularjs ng-repeat and ng-options are not working in selectAngularjs ng-repeat 和 ng-options 在选择中不起作用
【发布时间】:2016-09-13 02:43:50
【问题描述】:

我正在尝试使用 select 从某个表单中的某个 $scope 中获取值,但我得到的只是未定义的值,请帮助我。

角度 JS

在这段代码中,我在提交表单时调用了 agregarMuestra(),但是使用 select 时 $scope.nuevo_muestra 不匹配任何内容,仅适用于 input .

.controller('ctrlRegm',function($scope, $state, $http){
    $scope.tipos = [{"tipo":"sangre"}, {"tipo":"heces"}, {"tipo":"orina"}];
    $scope.nuevo_muestra = {};

    $scope.agregarMuestra = function() {
        console.log($scope.nuevo_muestra); //print empty array
        console.log($scope.nuevo_muestra.tipo); //print undefined

        $http.post("/muestra", {
            tipo: $scope.nuevo_muestra.tipo,

        }).success(function(response){
            $scope.muestras.push(response);
            $scope.$apply();  
        });
    };
}

HTML

这不起作用

<div class="form-group col s12" >
   <select ng-options="t.tipo for t in tipos track by t.tipo" ng-model="nuevo_muestra.tipo">
   </select>
   <label>el tipo es: {{nuevo_muestra.tipo}}</label>
</div>

这个

<div class="form-group input-field col s12" >
   <select ng-model="nuevo_muestra.tipo">
      <option ng-repeat="t in tipos" value="{{t.tipo}}"> {{t.tipo}}
      </option>
   </select>
</div>

但如果我使用 输入,那么它确实有效,为什么,为什么? :(

<div class="form-group">
   <input type="text" class="form-control" name="tipo" ng-model="nuevo_muestra.tipo">
</div>

【问题讨论】:

    标签: angularjs scope ng-repeat angular-ngmodel ng-options


    【解决方案1】:

    必须是

    <select ng-options="t.tipo for t in tipos" ng-model="nuevo_muestra">
    </select>
    

    这将用tipos的选定元素替换nuevo_muestra。

    <select ng-options="t.tipo as t.tipo for t in tipos" ng-model="nuevo_muestra.tipo">
    </select>
    

    这会将 nuevo_muestra.tipo 设置为所选元素的 Tipo。

    这在the documentation中有很好的描述。

    另外,success() 已被弃用很长时间,$scope.$apply() 在这里完全没用。

    【讨论】:

      猜你喜欢
      • 2018-08-27
      • 1970-01-01
      • 2023-04-09
      • 2018-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多