2014-09-08 25 views
9

ngDialog.open ile bir iletişim kutusu oluşturan bir denetleyicim var. Kapsamı atayım: $ kapsamı ve pop-up $ diyalog penceresinde ng-modeliyle kapsam değişkenlerini ayarlayın. Ancak, değerler denetleyicinin $ kapsamı içinde ayarlanmamıştır. Ng tıklama işlevi $ kapsamındaki bir işlevi çağırabilir.

Kaybettiğim bir şey var mı? Burada biraz araştırma yaptım, github'u buldum, dokümanlar okudu ve projede github üzerinde sunulan tüm örneklerle çalıştı.

JS Fiddles, aşağıdaki açıklamayı yapmaktadır. Bu kapsamı gösterir: $ kapsamı .open() için göründüğü gibi değil. Tek yönlü bir bağdır ve $ kapsamına geri gitmez. .openConfrm() beklenen davranışa sahip gibi görünüyor. ;

ngDialog.open() - http://jsfiddle.net/tbosLoa9/ (beklendiği gibi çalışır)

var myApplication = angular.module('myApplication', ['ngDialog']); 

myApplication.controller('MainController', function ($scope, ngDialog) { 
$scope.FormData={newAccountNum:''}; 
$scope.ShowNgDialog = function() { 
    ngDialog.open({    
     template: '<div><input type="text" ng-model="FormData.newAccountNum"/></div>', 
     plain: true, 
     scope:$scope 

    }); 
}  

}) - http://jsfiddle.net/s1ca0h9x/()

ngDialog.openConfirm (SABİT !! beklenen gibi çalışır)

+1

nasıl bir [jsfiddle] (http hakkında: //jsfiddle.net) veya [plunker] (http://plnkr.co/edit/?p=preview)? – bluetoft

+0

Bir jsfiddle örneğinde çalışıyorum. – howserss

+0

Bu soruyu ngDialog sahibine de verdim https://github.com/likeastore/ngDialog/issues/74 – howserss

cevap

13

orijinal yayın düzenlenmiş ve aşağıya ekledik. FIXED bağlantısı çalışmayı gösterir ve ikincisi onu kırıldığını gösterir. Nokta ekleme (javascript nesnesini kullanarak) sorunu giderir.

ngDialog.open() - http://jsfiddle.net/s1ca0h9x/()

ngDialog.openConfirm (SABİT !! beklenen gibi çalışır) - http://jsfiddle.net/tbosLoa9/ (olarak beklenen işleri)

var myApplication = angular.module('myApplication', ['ngDialog']); 

myApplication.controller('MainController', function ($scope, ngDialog) { 
    $scope.FormData={newAccountNum:''}; 
    $scope.ShowNgDialog = function() { 
     ngDialog.open({    
      template: '<div><input type="text" ng-model="FormData.newAccountNum"/></div>', 
      plain: true, 
      scope:$scope 

     }); 
    }  
});  
+0

Düz şablon olmak zorunda mı? html dosyasını şablon olarak kullanırken ne dersiniz? Harici dosya kullanmayı denedim ama çalışmıyor –

+0

ngDialog github sitesindeki harici html dosyalarını kullanan şablon örnekleri gösteriliyor. Aynı şablonu kullanır: parametre. Ex template: 'external.html' – howserss

+0

Aynı werd problemini alıyorum, değişken ana denetleyicide güncellenmiyor.Yani, değişken olmayan $ kapsamından değişken kullanamıyoruz ($ scope.newAccountNum gibi)? – AlainIb

0

ngDialog her tip özellikleri ile kapsamı geçer - http://jsfiddle.net/akgdxhd0/

var myApplication = angular.module('myApplication', ['ngDialog']); 

myApplication.controller('MainController', function ($scope, ngDialog) { 
    $scope.accountNum = ''; 
    $scope.ShowNgDialog = function() { 
    ngDialog.open({    
     template: '<div><input type="text" ng-model="accountNum"/></div>', 
     plain: true, 
     scope: $scope 
    }); 
    };  
}); 
+0

Örneğinize karşı benim örneğinizi kontrol etmelisiniz. En azından safari ve IE iki yönlü ciltleme jsfiddle ile çalışmıyor. Örneklerim şimdi çalışıyor. İletişim kutusunu açtıktan sonra, giriş alanınızı yazıp, sizin ve benim örneğiniz arasındaki farktır. Bir şans ver. – howserss

+0

vm'yi kapsamına nasıl geçireceğim, denetleyicide $ kapsam kullanmıyorum. kapsamı denedim: vm. ama ben çalışmıyor. – Arash

+0

kemanın mozillada benim için çalışmıyor. Verileri pop-up'da düzenliyorum ama ana kontrolörde accountNum güncellenmiyor! – AlainIb