2015-11-19 77 views
0

我无法使用带有Ionic 1.1.1的AngularJS 1.4.7检索Radio组的值;Ionic AngularJS Radio Group ng-model issue using ion-radio

任何想法都会很棒,谢谢。

看到问题的codepen片段:http://codepen.io/angsar/pen/RWdvrO

HTML

<html ng-app="app"> 
    <head> 
     <link rel="stylesheet" href="http://code.ionicframework.com/1.1.1/css/ionic.min.css" /> 
     <link href="http://code.ionicframework.com/ionicons/1.5.2/css/ionicons.min.css" rel="stylesheet"> 
     <script src="http://code.ionicframework.com/1.1.1/js/ionic.bundle.js"></script> 
    </head> 
    <body ng-controller="myCtrl">  
     <ion-content padding="true"> 

      <form class="list" ng-submit="Pass(test)"> 
       <p>Selected Sample: {{test.val}}</p> 
       <ion-radio ng-model="test.val" ng-value="s1">Sample 1</ion-radio> 
       <ion-radio ng-model="test.val" ng-value="s2">Sample 2</ion-radio> 
       <button class="button button-energized button-large icon-right button-full">Test</button> 
      </form> 

     </ion-content>  
    </body> 
</html> 

的Javascript

angular.module('app', ['ionic']) 
.controller('myCtrl', function($scope) { 
    $scope.Pass = function($test) { 
    alert("Test: "+$test.val); 
    } 
}); 

回答

4

尝试以下操作:

angular.module('app', ['ionic']) 
.controller('myCtrl', function($scope) { 
$scope.test = {}; 
$scope.Pass = function($test) { 
    alert("Test: "+ $scole.test.val); 
} 
}); 

说明:

  1. $test未在$scope定义。
  2. 变量开始$有角有特殊的意义,所以你不应该使用它们作为常规的变量名

更新: 这也是很重要的singelquote内引用NG-双的字符串值值

<ion-radio ng-model="test.val" ng-value="'s1'">Sample 1</ion-radio> 
+0

或者你可以在你的''

-tag – konqi

+0

添加'NG-的init = “测试= {}”'工作codepen:http://codepen.io/anon/pen/Lpaqra – konqi

+0

并与ng-init:http://codepen.io/anon/pen/vNPbzB – konqi

0

我已经设法解决它,然后再阅读“接受的答案”帖子。 请参阅下文,了解我提出的解决方案。

我用值替换了ng值,用test替换了test.val。

http://codepen.io/angsar/pen/LpvGzj

angular.module('app', ['ionic']) 
.controller('myCtrl', function($scope) { 

    $scope.Pass = function($test) { 
    alert("Test: "+$test); 
    }; //pass 

}); 
0

尝试以下,

HTML:

<form class="list" ng-init="test={}" ng-submit="Pass(test)"> 

angular.js

angular.module('app', ['ionic']) 
.controller('myCtrl', function($scope) { 
    $scope.Pass = function(test) { 
    alert("Test: "+test.val); 
    } 
}); 

codepen:http://codepen.io/mohanapriya/pen/BzpzZx?editors=1010