2015-11-19 78 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