0

我正在學習Angular,並且正在嘗試構建位和bobs來學習。我試着在下面儘可能清楚地解釋我自己 - 任何幫助將不勝感激。使用ngclick編輯重複項目

例子: http://jsbin.com/micasafetise/2/ http://jsbin.com/micasafetise/2/edit?html,js,console,output

我創建自己的數據該位

$scope.people = 
[ 
    { 
    "personID": 1, 
    "first_name": "Sam", 
    "last_name": "Stimpson", 
    "attending": false 
    }, 
    { 
    "personID": 2, 
    "first_name": "Alison", 
    "last_name": "van Schoor", 
    "attending": true 
    }, 
    { 
    "personID": 3, 
    "first_name": "Lindsay", 
    "last_name": "van Schoor", 
    "attending": false 
    } 
]; 

我創建了一個輸出在我看來是這樣的:

<div ng-repeat="person in people"> 
    <a href="" ng-click="isAttending()"> 
    {{person.first_name}}{{person.last_name}} - {{person.attending}} 
    </a> 
</div> 

現在我堅持的那一點。我希望能夠點擊一個人並將他們的參與領域從虛假更新爲真實。我明白我可以使用NG單擊這樣

$scope.isAttending = function() { 
    alert("is attending"); 
}; 

,但沒有線索如何更新伊夫單擊以false改爲true在$ scope.people的人。

當我已經達到這個目標時,我計劃再用一個過濾器來重複ng-repeat,以顯示那些正在參加的人,但是我能夠做到這一點我相信。

任何人都可以幫助我或給我一些建議,目前任何事情都會非常感激。

謝謝先進。

我寫了什麼我想在這裏做一個例子: http://jsbin.com/micasafetise/2/ http://jsbin.com/micasafetise/2/edit?html,js,console,output

+0

它不是json它是javascript對象。 – PSL 2014-10-10 14:06:12

回答

7

你可以只通過重複的人<a href="" ng-click="isAttending(person)">,有你的處理方法採取的對象,所以你可以更新其財產(你可以在視圖中以內聯的方式做到這一點,但最好將邏輯分離出來並放在控制器中,就像你原來的那樣)。

$scope.isAttending = function(person) { 
    person.attending = true; 
}; 

只需添加一個過濾器,以及雙方的部分,以顯示誰都是參加,誰不是。

<div ng-repeat="person in people | filter:{attending:false} track by person.personID"> 
    <a href="" ng-click="toggleAttending(person)"> 
    {{person.first_name}}{{person.last_name}} - {{person.attending}} 
    </a> 
</div> 

$scope.toggleAttending = function(person) { 
    person.attending = !person.attending; 
}; 

Demo

你的情況,你也許可以優化更好的(你的人同一名單上2個過濾器)通過從控制器過濾掉並填充到2人名單people.invitedpeople.attendance

function updatePeopleAttendance(){ 
    $scope.people.attending = []; 
    $scope.people.invited = []; 

angular.forEach(people, function(person){ 
    $scope.people[person.attending ? 'attending' : 'invited'].push(person); 
}); 
} 

Demo

,甚至更好,你可以通過該方法中的ID,索引和地位,拉項目出一個陣列,並推動它的另外一個。

+0

謝謝,這正是需要的! – Iamsamstimpson 2014-10-10 15:06:48

+0

@pixeltooth歡迎您! – PSL 2014-10-10 15:07:49