javascript-在Angular js中单击提交后,如何获取在单选按钮中选择的值的列表
作者:互联网
这是HTML,此文件是部分文件,在主页中定义了全局控制器: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)之间共享数据.您可以通过多种方式执行相同的操作.
构建维护共享对象的服务,控制器仅使用引用来处理.请注意,在这种情况下,它将起作用,直到您不会根据理想情况手动刷新页面为止.如果您的数据不是很繁重,并且需要在所有页面上进行维护,那么在这种情况下,您可以将其存储在本地存储中.
Here is the demo http://plnkr.co/edit/rrFTmtnYjYNjyE8twUif
您可以使用service&做同样的事情. $scope.$watch方法.我更喜欢您不要使用$watch来代替分配和监视整个服务,您只需要使用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正在使用此方法.
标签:javascript,angularjs,ng-repeat,controller 来源: https://codeday.me/bug/20191009/1877921.html