我有一個複雜的模型來表示足球錦標賽的簡化版本,這樣的事情:更新範圍內對象
var model = {
groups: [
{
name: "group A",
matchList: [
{id: "1", name: "Team 1 vs Team 2", score: "0-0"},
{id: "2", name: "Team 3 vs Team 4", score: "0-0"},
{id: "3", name: "Team 5 vs Team 6", score: "0-0"},
{id: "4", name: "Team 7 vs Team 8", score: "0-0"},
]
},{
name: "group B",
matchList: [
...
]
},
... and so on ...
]
}
爲簡單起見我展示的緣故,對於第一組唯一的,與當前結果匹配。每一場比賽是點擊並打開一個模式,用戶可以改變比賽結果:
<table>
<tr ng-repeat="match in matchList" ng-click="editMatchScore(match)">
<td>{{match.name}}</td>
<td>{{match.score}}</td>
</tr>
</table>
此表有,它的控制器,以下範圍內:
$scope.matchList = model.groups[0];
$scope.editMatchScore = function(selectedMatch){
// Here, I open the modal where the user can change the match result.
}
一切正常,我的情態回報與用戶inputed匹配結果的新的對象,例如:
{newResult: "5-0"} //This object is successfully returned by the modal
現在,我想更新原始模型,以便自動地更新所述含第視圖e組結果也是如此。
如何掃描當前範圍以找到正確的匹配並更新它?
這是我到目前爲止已經試過(使用lodash提取物),模態關閉此代碼後啓動並返回newResult:
var group = _.find($scope.groups, function(current){
return current.name === "group A"; // get the first group
});
var match = _.find(group, function(current){
return current.id === "1"; // Assume I'm editing the first match at the moment
});
match.score = "5-0";
我希望match
會保留對原始模型的匹配內部對象的引用,因此我希望我可以對其進行編輯並查看反映到原始模型的更改,但不幸的是,它不能按預期工作。我可能錯過了一些東西,任何人都可以幫忙?
希望我是很清晰,由於
:那麼,既然你有參考最初選擇「匹配」的對象,只需要修改呢? –
@NewDev是的,我遵循這個例子:http://angular-ui.github.io/bootstrap/#/modal – BeNdErR