在 Angular js 中单击提交后如何获取在单选按钮中选择的值列表

How to get list of values which are selected in radio button after click on submit in Angular js

这里是 HTML,这个文件是局部的,其中全局控制器定义在 home page:message 对象包含从第一页加载的数据。

<ng-repeat data in message>
<input type="radio"  ng-model="accountValue"  value="{{data}}" name="select" />

{{data.Type}}
{{data.Number}}

继续

JS:

myApp.controller('myCtrl',['$scope',function ($scope) {
    $scope.selectAccount = function(id) {
        alert(id);
    }
}]);

我得到的 id 为 undefined 。请帮忙。谢谢

因此,根据评论,您真正需要的是在单击继续按钮时在两个控制器(即 Global 和 myCtrl )之间共享数据。您可以通过多种方式执行相同的操作。

构建维护您的共享对象的服务,控制器仅处理 reference.Please 注意在这种情况下它将一直工作,直到您不会根据理想情况手动刷新页面。如果你的数据不是更重,并且你需要在所有页面上维护它,那么在这种情况下你可以将它存储在本地存储中。

Here is the demo http://plnkr.co/edit/rrFTmtnYjYNjyE8twUif

您可以使用 service & $scope.$watch 方法做同样的事情。我希望您不要将 $watch 用于 this.Instead 分配和观看整个服务,您应该只需要使用 setter/getter 来访问和共享数据。

Here is the demo http://plnkr.co/edit/N2qIMRyDj2SX2BdBleU4

是的,您还可以使用 ng-model 使用作用域的 $parent 属性。当然有几种方法可以做同样的事情:假设你的 HTML 如下所示

<div ng-controller="ParentCtrl">
   <div ng-controller="ChildCtrl"></div>
</div>

然后你可以像这样访问你的父作用域

function ParentCtrl($scope) {
$scope.cities = ["NY", "Amsterdam", "Barcelona"];
}
function ChildCtrl($scope) {
  $scope.parentcities = $scope.$parent.cities;
}

实际上,由于您在父控制器中定义了城市,您的子控制器将继承所有范围变量。所以理论上你不必调用 $parent。上面的例子也可以这样写:

function ParentCtrl($scope) {
$scope.cities = ["NY","Amsterdam","Barcelona"];
}
function ChildCtrl($scope) {
$scope.parentCities = $scope.cities;
}

Angular Docs 正在使用这种方法。