AngularJS’de dizi (array) içindeki bir objeyi (object) nasıl güncelleriz?

AngularJS ile geliştirdiğim bir sayfa, Chrome’da sorunsuz çalışırken, Internet Explorer’ın son sürümünde saçmalıyordu. Bunun sebebini araştırırken ilginç bir bilgi edindim:

AngularJS’de dizi içindeki bir nesneyi güncellerken klasik değişken atamasını kullanmak doğru bir yaklaşım değil!

Yani normalde aşağıdaki şekilde güncelleme yaparız:

var dizi = [
    { /* birinci nesne */ },
    { /* ikinci nesne */ }
];
var nesne = { /* yeni birinci nesne */ };
dizi[0] = nesne;

Bu kullanımda Chrome bir şekilde doğru çalışıyor ama Internet Explorer 10 düzgün çalışmıyor. Söz konusu IE sürümü 8 olsaydı sorun etmezdim ama en son sürümde AngularJS gibi bir kütüphanenin düzgün çalışmaması kesinlikle benim hatam olmalıydı.

Ardından Google’da angularjs update item in array şekilde bir arama yaptım ve şu linke ulaştım.

Linki ziyaret ettiğinizde az önce verdiğim örneğin asında aşağıdaki gibi olması gerektiğiniz göreceksiniz:

var dizi = [
    { /* birinci nesne */ },
    { /* ikinci nesne */ }
];
var nesne = { /* yeni birinci nesne */ };
angular.extend(dizi[0], nesne);

Kodu bu şekilde güncellediğimde ilgili sayfa Internet Explorer’da da düzgün çalıştı.

Umarım bu yazı, benzer sorunu yaşayan birilerine faydalı olur :)