2016-11-29 107 views
0

我想从输入类型广播获得价值,但我得到未定义的输出。无法从输入类型无线电广播获得价值

这里是我的HTML代码:

<div ng-repeat="option in options" style="font-size : 20px;padding: 10px"> 
    <input type="radio" ng-model="inpt" value = "{{option.poll_option_id}}"> {{option.poll_option}}</input> 
</div> 

<br> 

<button ng-disabled="rd" ng-click="pollSubmit()">Submit </button> 

我的角码是

$scope.pollSubmit = function(){ 
    console.log($scope.inpt); 
} 

回答

0

这是因为ngRepeat创建自己的子范围。范围可以查询,而不是查找。您应该使用属性的对象上迭代,然后在控制器检查这些属性:

<input type="radio" ng-model="option.input" value = "{{option.poll_option_id}}"> {{option.poll_option}}</input> 

而且JS:

$scope.pollSubmit = function(){ 
    for (var i = 0; i < $scope.options.length; i++) { 
     console.log($scope.options[i].input); 
    } 
} 
1

这是更好地使用NG-变化和获得的价值,使用相同的,同时提交

<div class="row"> 
     <div class="col-xs-9"> 
      <label class="radio-inline" ng-repeat="y in options"> 
      <input type="radio" ng-model="selected" ng-change="getselected(y)" ng-value="y.poll_option_id"> {{y.poll_option_id}} 
      </label> 
     </div> 
     </div> 

DEMO

0

使用选项输入标签需要一些配置才能使其工作。 YOu可能使用相同的name属性来分组来自同一组的选项。在ng-model中使用一个变量,指向当前作用域中对象中的一个元素。 INPUT不是一个容器(没有关闭标签),所以任何额外的文本内容都在标签元素之后。

<input name="opt1" type="radio" ng-model="sel.value" value = "{{option.poll_option_id}}"> {{option.poll_option}} 

看到这个小提琴:https://jsfiddle.net/aavsnc8n/为例。

+0

,而不是 ;-) – Nico