2013-04-05 38 views
53

Tôi cần phải thực hiện một hệ thống để thay đổi tổng giá theo số lượng vé đã chọn. Tôi đã tạo một số nút radio để chọn số lượng vé. Các ploblem là giá trị mặc định là unset và kết quả là null khi tải.Làm cách nào để đặt giá trị mặc định cho các nút radio trong AngularJS?

<input type="radio" ng-model="people" value="1" checked="checked"><label>1</label> 
<input type="radio" ng-model="people" value="2"><label>2</label> 
<input type="radio" ng-model="people" value="3"><label>3</label> 
<ul> 
    <li>{{10*people}}€</li> 
    <li>{{8*people}}€</li> 
    <li>{{30*people}}€</li> 
</ul> 

Please see my jsfiddle.

+0

giá trị mặc định bạn muốn đặt –

+1

lưu ý phụ cho bất kỳ ai sử dụng {{$ index}} cho giá trị, mô hình của bạn cần phải xâu chuỗi giá trị ban đầu '1'. – user420667

Trả lời

109

Đặt một giá trị mặc định cho people với ngInit

<div ng-app> 
    <div ng-init="people=1" /> 
     <input type="radio" ng-model="people" value="1"><label>1</label> 
     <input type="radio" ng-model="people" value="2"><label>2</label> 
     <input type="radio" ng-model="people" value="3"><label>3</label> 
    <ul> 
     <li>{{10*people}}€</li> 
     <li>{{8*people}}€</li> 
     <li>{{30*people}}€</li> 
    </ul> 
</div> 

Demo: Fiddle

+0

Cảm ơn! đã được giải quyết! – WalterV

+21

bạn cũng có thể làm như vậy bên trong bộ điều khiển bằng cách đặt scope.people = 1, là cách được đề xuất được mô tả trong http://docs.angularjs.org/api/ng.directive:ngInit – goh

+0

@Arun, Điều gì xảy ra nếu các giá trị có ký tự thay vì chữ số. Sau đó, làm thế nào sẽ là mã cho 'ng-init' trông như thế nào? –

19
<div ng-app="" ng-controller="myCntrl">  
     <input type="radio" ng-model="people" value="1"/><label>1</label> 
     <input type="radio" ng-model="people" value="2"/><label>2</label> 
     <input type="radio" ng-model="people" value="3"/><label>3</label> 
</div> 
<script> 
    function myCntrl($scope){ 
     $scope.people=1; 
    } 
</script> 
+0

Đặt các giá trị như thế này trên phạm vi đã giải quyết nó cho tôi. –

+0

Điều này làm việc cho tôi. – luizfelippe

9

tại sao không chỉ ng-checked="true"

+11

Bởi vì nó sẽ kiểm tra nút radio trực quan, nhưng sẽ không đặt giá trị của "người" như nếu bạn đã nhấp vào nút radio thông qua trình duyệt. – Tristan

+1

Phần câu trả lời không phải là một nơi tốt cho các câu hỏi. Điều này sẽ tốt hơn trong các bình luận về câu trả lời được chấp nhận. – shanemgrey

+1

Điều này đã giúp tôi rất nhiều. Cảm ơn vì đã giúp ích. –

-6
<input type="radio" name="gender" value="male"<%=rs.getString(6).equals("male") ? "checked='checked'": "" %>: "checked='checked'" %> >Male 
       <%=rs.getString(6).equals("male") ? "checked='checked'": "" %> 
Các vấn đề liên quan