Angular - Ng-change返回的值始终相同

时间:2014-09-26 09:58:00

标签: javascript angularjs radio-group

我想问一下,如何从电台列表中获取选定值?

我尝试了更改,并观察范围,但我始终只获得在应用初始化期间设置到模型中的第一个值。

以下是我的代码示例:

单选按钮组:

<div class="list" ng-contoller="SettingsCtrl">
        <ion-radio ng-model="choice" ng-value="'dials'">Dials</ion-radio>
        <ion-radio ng-model="choice" ng-value="'conversations'">Conversations</ion-radio>
        <ion-radio ng-model="choice" ng-value="'appoitnments'">Appointments</ion-radio>
        <ion-radio ng-model="choice" ng-value="'orders'">Orders</ion-radio>
      </div>

JS:

// Default choice scope
$scope.choice;

$scope.$watch('choice', function(value) {
            // Here i get always the same value
            console.log("Selected goalType, text: " +value);
});

如何获取选定值并将此值设置到范围内?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

不使用离子框架和输入单选按钮,它正在工作。 你在这一行<div class="list" ng-contoller="SettingsCtrl">上犯了一个错误。 你忘记了控制器中的r。

这是代码工作: HTML

<!DOCTYPE html>
<html ng-app="app">

  <head>
    <script data-require="angular.js@1.2.25" data-semver="1.2.25" src="https://code.angularjs.org/1.2.25/angular.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body >
    <div class="list" ng-controller="SettingsCtrl">
        <input type="radio" ng-model="choice" ng-value="'dials'">Dials
        <input type="radio" ng-model="choice" ng-value="'conversations'">Conversations
        <input type="radio" ng-model="choice" ng-value="'appoitnments'">Appointments
        <input type="radio" ng-model="choice" ng-value="'orders'">Orders
      </div>
  </body>

</html>

和JavaScript:

var app = angular.module('app', []);

app.controller('SettingsCtrl', function($scope){
  $scope.choice;
  console.log('ctrl');
  $scope.$watch('choice', function(value) {
              // Here i get always the same value
              console.log("Selected goalType, text: " +value);
  });
});

你可以看到它在这里工作: http://plnkr.co/edit/TRJKW7eOlBek6TditM1B?p=preview

修改 我用离子骨架测试了它。它也有效。所以这只是问题所在。

答案 1 :(得分:0)

我为你做了this fiddle。当您选择radio$scope.currentSelection更改时,您将知道当前所选目标。