2017-04-24 111 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