Angular JS将单选按钮绑定到变量以用作翻转

时间:2016-08-09 21:28:03

标签: html angularjs model-view-controller angularjs-directive

我要做的是使用用户选择的单选按钮值来更新控制器中的变量。该变量取决于值,将针对特定答案进行http调用。





示例:


&# xA;

选择汽车 - >变量temp =卡片 - > http调用汽车方法





选择房子 - >变量temp = house - > http调用house方法





在视图中我有这样的内容:




 &lt; input id =“inputOne”type =“radio”ng-value =“cars”ng-model =“controller.selection”&gt;&#xA;&lt; input id =“inputTwo”type =“radio”ng-value =“ house“ng-model =”controller.selection“&gt;&#xA;&#xA;&lt; input id =”mySubmit“type =”button“ng-click =”controller.selectionChosen“&gt;&#xA; < / code> 
&#xA;&#xA;

在我的控制器中,我有类似这样的内容:

&#xA;&#xA;
 < code> var vm = this;&#xA; vm.selection;&#xA;&#xA; function selectionChosen(){&#xA;警报(vm.selection);&#XA;&#XA; //如果选择==汽车这样做&#xA; //如果选择== house,请执行此操作&#xA;}&#xA;  
&#xA;&#xA;

您可能想知道为什么它是'controllerName.variableName',我是遵循最佳做法(在此处 )`所以它的设置方式需要控制器名称然后是变量。

&#xA;&#xA;

我遇到的问题是由于某种原因,该值没有绑定。当警报发生时它会发出“未定义”警报,我不知道为什么。我在网上查看了许多教程和示例,看起来它应该可以工作。

&#xA;&#xA;

更新

&#xA;&#xA;

所以我我很确定它具有约束力,或者至少可以尝试。当我将初始化的变量设置为“test”时,第一个警报显示“test”。单击按钮后,它将变为“未定义”。

&#xA;

1 个答案:

答案 0 :(得分:1)

问题来自ng-value="cars"

因为您使用Mycontroler作为控制器,如果您在控制器中声明汽车,它应该是ng-value='controller.cars'

如果您只是想将汽车用作ng值的字符串而不声明它,则需要添加' ',angular会将其视为字符串而不是变量 ng-value="'cars'"