2015-08-25 23 views
1

这里是HTML,这个文件是局部的,其中全局控制器在主页中定义:消息对象包含从第一页加载的数据。如何获取在单击提交角度js后单选按钮中选择的值列表

<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为未定义。请帮忙。谢谢

+0

<消息中的重复数据> {{data.Type} } {{data.Number}} <按钮类型= “按钮” NG单击= “selectAccount(accountValue)” 类= “BTTN文本”>继续 JS: myApp.controller('myCtrl ”,[ '$范围',函数($范围){ \t \t \t $ scope.selectAccount =函数(ID){ \t \t alert(id); \t \t \t }]); – Satheesh87

回答

2

因此,根据评论,你确实需要的是在继续按钮onclick之间共享两个控制器(即全球和myCtrl)之间的数据。您可以通过多种方式来执行相同的操作。

建立维护你的共享对象和控制器只处理引用的服务。请注意在这种情况下,它将工作,直到你不会手动刷新你的页面,根据理想情况。如果您的数据不是更重,而且您需要在所有页面上维护数据,则可以将其存储在本地存储中。

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

您可以通过使用服务& $范围。$腕表方法做同样的事情。我宁愿你不要使用$ watch来代替这个。而是分配和观看整个服务,你只需要使用setter/getter来访问和共享数据。

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

是的,你也可以用NG-模型使用范围的$ 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; 
} 

其实自从你定义城市在父控制器中,您的子控制器将继承所有范围变量。所以在理论上你不必打电话给$家长。

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

Angular Docs使用这种方法:上面的例子中,也可以如下写入。

+0

非常感谢您的快速回复。我想从对象列表中将这2个动态值传递给控制器​​onclick继续按钮。你能帮我解答一下吗。 – Satheesh87

+0

根据你的意见编辑答案。让我知道你是否还有任何问题。 – road2victory

+0

谢谢苛刻。我用其他方式解决了它使用ng-model =“$ parent.data” – Satheesh87

相关问题