因此,這裏是我的工作流 -只能使用獲得的第一個項目的ID NG-重複
我已經有了我已經放在ng-repeat
其迭代,並給了我,其中div
標籤創建一個HTML文件項目列表。在此div
標記上,我放置了ng-click
函數。點擊div
標籤中的項目,打開模式彈出框。
我需要的是從ng-repeat中傳遞項目的id,並在模態彈出中顯示此ID的數據。
現在我寫的代碼到此級別和所有的東西都做工精細,但問題,我現在面臨的如果我對任何項目的點擊來自ng-repeat
中的第一項只是返回,因此第一項的id的數據僅在模式彈出中顯示。
我怎麼能得到的特定物品的ID點擊(而不是第一項)並把它傳遞給控制器?
這是我工作的代碼 -
主要HTML:
<div id="main">
<div ng-repeat="data in JsonData" ng-click="openModal()">
<div id="widget">
<div id="{{$index}}">
<div>
<h2 class="font-bold no-margins" id="{{data.itemName}}">
{{data.itemName}}
</h2>
</div>
<div>
// other code
</div>
</div>
</div>
</div>
</div>
主要controller.js:
$scope.openModal = function() {
$rootScope.elementid = document.getElementById('main').getElementsByTagName('div')[2];
$rootScope.variableId = $scope.elementid.id; // This gives the value in {{$index}}
$rootScope.elementname = document.getElementById('main').getElementsByTagName('h2')[0];
$rootScope.variablename = $scope.elementname.id; // This gives the value in {{data.itemName}}
$uibModal.open({
templateUrl: 'url/to/modal/popup.html',
controller: 'PopUpController',
scope : $scope,
windowClass: "animated fadeIn",
backdrop:'static'
});
};
做檢查元素,我發現的元素正在得到他們正確的ID。
這是{{itenName}}代碼:(名稱來正確)
h2#CorrectName.ng-binding
,這對於{{$指數}}代碼:(這裏,ID是遞增ng-repeat的項目)
div#0.ng-binding
那麼我在哪裏錯了?是否由於任何異步調用?或者是由於ng-binding(即該項的id在ng-binding函數完成之前返回)?
我在這裏呆了好幾天了。任何幫助將非常感激。謝謝。
AHHA .. **非常感謝!**這解決了我的問題。現在我已經停留了很多天。 你在合適的時間幫助了我的朋友。 – HardikT