Açısal JS denetleyicileri arasında geçen veriler?
Ürünlerim gösteren basit bir kumanda var
App.controller('ProductCtrl',function($scope,$productFactory){
$productFactory.get().success(function(data){
$scope.products = data;
});
});
Benim görüşüme göre bir liste bu ürünleri gösteren biriyim
<ul>
<li ng-repeat="product as products">
{{product.name}}
</li>
</ul
Yapmaya çalıştığım şey, birisi bu ürün, eklendiği Ürün Adı, başka bir görünüm arabası var adı üzerine tıklayın.
<ul class="cart">
<li>
//click one added here
</li>
<li>
//click two added here
</li>
</ul>
Benim şüphesiz işte bu yüzden, nasıl ikinci ilk denetleyicisi bu tıklanan ürün veriyor? araba kumanda da olması gerektiğini düşündüm.
Tıklatın olay yönergesini kullanarak idare ettim. Hizmet işlevleri üzerinde ulaşmak için kullanıyor olmam gerektiğini hissediyorum nasıl, anlayamadım da? sepeti sayıda önceden tanımlanmış olacak çünkü ürünleri 5/10 bağlı olabileceğini ekledi. Bu genel tutmak istiyorum.
Güncelleme:
Hizmet yayın için yarattım ve ikinci kontrolör olarak alıyorum. Şimdi sorgu nasıl dom güncellerim? Listemi ürün bırakmak için yana güzel kodlanmış.
CEVAP
Bu açıklama, bir servis kullanıyor olabilir gibi görünüyor. http://egghead.io/lessons/angularjs-sharing-data-between-controllers AngularJS Service Passing Data Between Controllers bazı örnekler görmek için kontrol edin.
Ürün servisi olarak tanımlayabilirsiniz
app.service('productService', function() {
var productList = [];
var addProduct = function(newObj) {
productList.push(newObj);
};
var getProducts = function(){
return productList;
};
return {
addProduct: addProduct,
getProducts: getProducts
};
});
Bağımlılık her iki denetleyicileri içine enjekte hizmeti.
Senin ProductController, dizisi, seçili nesne ekleyen bir eylem tanımlayın:
app.controller('ProductController', function($scope, productService) {
$scope.callToAddToProductList = function(currObj){
productService.addProduct(currObj);
};
});
Senin CartController, hizmetinden ürünler:
app.controller('CartController', function($scope, productService) {
$scope.products = productService.getProducts();
});
Görünüm arasında geçen Veri Denetleyic...
Profesyonel bir denetleyici ve bir blo...
Açısal: denetleyicileri arasında veri ...
En iyi Raylar üzerinde Ruby denetleyic...
JQuery UI İletişim için geçen veriler...