簡體   English   中英

在Angular JS中單擊提交后如何獲取單選按鈕中選擇的值列表

[英]How to get list of values which are selected in radio button after click on submit in 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正在使用這種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM