2017-04-24 75 views
0

模板 - 1NG-檢查= '真' 不工作

<ul> 
    <li> 
    <label><input type="radio" ng-checked="true" /> One</label> 
    </li> 
    <li> 
    <label ng-click="ctrl.goToTwo()"><input type="radio" /> Two</label> 
    </li> 
<ul> 

模板 - 2

<ul> 
    <li> 
    <label ng-click="ctrl.goToOne()"><input type="radio" /> One</label> 
    </li> 
    <li> 
    <label><input type="radio" ng-checked="true" /> Two</label> 
    </li> 
<ul> 

在上面的html,我只是重定向用戶到模板1至模板2的幫助的單選按鈕。

問題 我已經在兩個模板中的一個單選按鈕中明確提到了ng-checked=true。但我不知道他們爲什麼會在加載時未經檢查。

請讓我知道,如果我失去了一些東西,或需要做別的事情。

注意:我嘗試玩ng-model='one'vm.type='one'但它不起作用。

+0

請使用無線電標籤值。使用模型並在控制器中聲明模型值。請參考這個小提琴。 http://jsfiddle.net/BinaryMuse/ZQDts/3/ – Sathish

+0

@Sathish:我已經嘗試過了,但是我不知道什麼是錯的。 – Era

+0

創建一個plunker複製問題..雖然它看起來微不足道,並造成一些微小的錯誤。檢查第一個也許 – tanmay

回答

0

你有一個 「值」 在你的代碼

<input type="radio" ng-model="myRadio" value="1" /> 

後來添加到 「無線」 輸入

$scope.myRadio = "1" // check radio 
$scope.myRadio = "0" // radio not checked 

演示:

https://codepen.io/anon/pen/QvKNOQ

+1

其不工作 – Era

+0

@Era我的代碼示例正在運行,請提供您的代碼演示。 –

0

NG-檢查用於評估表達式

ngChecked

設置元件上的checked屬性時,如果內部 ngChecked表達是truthy。

因此,使用ng-checked="true"將搜索$scope.true變量,這顯然不是你在找什麼。


如果你正在使用你的輸入ng-model,您可以默認設置ng-model值:

<div ng-init="ctrlNumber = 1"> 
    <input type="radio" ng-model="ctrlNumber" value="1"/> 
    <input type="radio" ng-model="ctrlNumber" value=2"/> 
</div> 

當你將提交您的形式,檢查了ctrlNumber值:如果2,請致電ctrl.goToTwo()功能。

請注意,您也可以在您的控制器中設置此值,而不需要ng-init