我一直進展相當好與路線angularjs,觀點& UI的引導,但現在,我與範圍數據和雙向綁定,我有一些麻煩的工作。用ng-repeat,我發現你也可以將循環綁定到你的控制器中的foreach來做額外的處理,所以我試圖讓這兩個一起工作。如何使用ng-repeat和foreach獲得雙向綁定?
我一直在試圖找出範圍,angularjs NG重複。我有一個人名單,每個人都有一個weekSchedule對象,我在那裏建立一個表格,表示一週的時間表信息。
我環者(外)的列表,然後我環路的陣列編號爲1 - 7(內)。時間表數據包括一個「星期幾」號碼與日期號碼匹配,然後有一些邏輯可以用日程安排時間填充信息,或者如果不匹配則保留空白。但這種邏輯的細節在這裏並不重要。爲此,我需要每個特定人員的weekSchedule數據在迭代內部循環的同時處於範圍內。所以我制定了一個更基本的例子來看看。
我讀過有關這不少東西,但無法找到一個解決方案。我試過一百萬種方法,但沒有任何效果。我試過rootScope,$父,廣播,制定者&干將,設置人,然後通過功能調用內環代碼,等等,等等
用我的表,我試過設置範圍的weekScedule通過ng-init ng-init。還有一個'使用'day.weekSchedule = person.weekSchedule'的子範圍ng-init。通過這種方式,它可以將對象獲取到視圖模板的範圍內,但僅限於最後一個對象。因此,第一個外迭代中的對象具有錯誤的對象。
<table width="100%" border="1">
<tr ng-repeat="person in scheduleData">
<th ng-init="setWeekSchedule(person.weekSchedule)">{{person.name}}</th>
<!-- th>{{person.name}}</th -->
<!-- td width="12%" ng-repeat="day in dayNumbers" ng-model="person.weekSchedule" -->
<td width="12%" ng-repeat="day in dayNumbers">
<span ng-init="day.weekSchedule=person.weekSchedule"></span>
day.id: {{day.id}}<br />
1st schedule id: {{day.weekSchedule[0].id}}
</td>
</tr>
</table>
$scope.dayNumbers = [{id:1},{id:2},{id:3},{id:4},{id:5},{id:6},{id:7}];
$rootScope.person = {
weekSchedule: [{ id: 0 }]
};
$rootScope.setWeekSchedule = function(weekSchedule) {
$rootScope.person.weekSchedule = weekSchedule;
};
$scope.dayNumbers.forEach(function(day){
day.weekSchedule = $rootScope.person.weekSchedule;
console.log('day.id: ' + day.id);
console.log('1st schedule id: ' + day.weekSchedule[0].id);
});
$scope.scheduleData = [
{"id":"1","name":"Jim","weekSchedule":[
{"id":"1001","dow":"1","scheduleDate":"01/08/2016"},
{"id":"1002","dow":"2","scheduleDate":"01/09/2016"},
{"id":"1003","dow":"4","scheduleDate":"01/11/2016"},
{"id":"1004","dow":"5","scheduleDate":"01/12/2016"}]},
{"id":"1","name":"Kim","weekSchedule":[
{"id":"1005","dow":"2","scheduleDate":"01/09/2016"},
{"id":"1006","dow":"3","scheduleDate":"01/10/2016"},
{"id":"1007","dow":"5","scheduleDate":"01/12/2016"},
{"id":"1008","dow":"6","scheduleDate":"01/13/2016"}]}
];
無論我如何在控制器設定的時間表,我不能正確地查看迭代訪問它。無論我如何在視圖中設置時間表,我都無法在控制器中正確訪問(並處理)它。
輝煌,良好的工作,THX。毫無進展後,我參加了一個更簡單的方法,丟棄「dayNumbers.forEach」的陰影中NG重複和剛剛通過了「day.id」和「時間表」成一個函數,循環的時間表,以找到匹配並設置計劃爲'日'屬性,然後我可以在視圖中訪問它們。所以現在我想知道哪個更有效,因爲外部參照循環每個時間表爲每個屬性,我的新方法循環一次。我需要一個混合體,我可以將外部參照的obj設置爲日期屬性,因此每天只會調用一次迭代。所以我現在在想這個。 – bobvan
這個例子效率不高,因爲它在每次迭代中構建外部參照。理想情況下,應該在獲取數據並根據需要進行更新時構建外部參照。但這是如何快速構建外部參照的一個很好的例子。它很快解決了問題 – georgeawg
是的,我想出瞭如何調用一次。最大的問題是我有一個foreach綁定並且平行或陰影內部ng-repeat的地方;我在一個例子中看到的東西,並認爲我可以使用。放棄之後,事情變好了。 「日程」的obj已經不僅僅是一個道或日期多個屬性,但我在這裏減少到一個更基本的例子。現在我的'td'使用ng-init將xref obj設置爲'schedule',在'td'中我可以輸出任何我想要的屬性:
相關問題