AngularJs (1.0.7) 'deki bir sözden tek bir kayıt döndürme ve sonucu bir forma bağlama girişiminde bulunuyorum. Form doğru şekilde bağlanır, ancak giriş alanları salt okunurdur - Değerleri düzenleyemiyorum.
Bunun yerine kaydı bir Array içine sardım ve ng: yineliğini kullanarak yineleyin, form doğru şekilde bağlanır ve değerleri düzenleyebilirim. Açıkça sorunu gösteren bir plnkr oluşturduk
:
http://embed.plnkr.co/fOWyhVUfekRbKUSRf7ut/preview
doğrudan bağlı ve liste bağlı giriş alanlarını düzenleyebilirAncak tek vaadi bağlı alan düzenlenemez.
ng: modelini bir sözden dönen bir nesneye doğrudan bağlamak mümkün mü yoksa bu iş için bir dizi kullanmam gerekiyor mu?
app.controller('MainCtrl', function($scope, $timeout, $q) {
var person = {"name": "Bill Gates"}
var deferList = $q.defer();
var deferSingle = $q.defer();
// Bind the person object directly to the scope. This is editable.
$scope.direct = person;
// Bind a promise to the scope that will return a list of people. This is editable.
$scope.list = deferList.promise;
// Bind ap romise to the scope that will return a single person record. This is *not* editable.
$scope.single = deferSingle.promise;
// Resolve the promises
$timeout(function(){
deferList.resolve([person]); // Array
deferSingle.resolve(person); // Just the record itself
}, 100);
});
<body ng-controller="MainCtrl">
Directly Bound - This field is editable
<input ng:model="direct.name"/>
<hr/>
Singleton Promise - This field is *not* editable.
<input ng:model="single.name"/>
<hr/>
List Promise: - This field is editable
<div ng:repeat="person in list">
<input ng:model="person.name"/>
</div>
</body>
Düzenleme: Model direktifi değere ('$$ v') sözünün bileşeni, gelen okuma ama sözünü doğrudan yazıyor: Bazı ayıklama sonra, ben ng olduğunu tespit ettik nesnenin kendisi. Sözcüğü düzenlemeye çalışırken, sözün karakterini saklarken ViewModel özgün değerine geri döndürülmeye devam eder. Böylece kullanıcı giriş alanına 'asdf' yazarsa, sonuç aşağıdaki gibi olur.
{Name: "Asdf", $$v: {Name: "Bill Gates"}}
yerine ben yanlış mı yapıyorum
{$$v: {Name: "asdf"}}
bekliyor ya angularjs bu potansiyel bir hata olduğunu gerektiğinden?
(Daha açık olarak, meselenin bir Array ve bir söz tarafından döndürülen bir nesne arasındaki davranış farkıdır. Direkt bağlanma bir kontrol olarak sadece orada)
Sorunu buldum ve bir çekme isteği oluşturduk. https://github.com/angular/angular.js/pull/2854 –