AngularJS. Nasıl kontrol bileşeni dışından kumanda işlevini çağırmak için
Fonksiyonu kumanda altında tanımlanmış web sayfasının herhangi bir yerde (kontrol bileşeni dışında) gelen aramayı nasıl yapabilirim?
"Al" düğmesine basın. basın çok iyi çalışıyor Ama div denetleyicisi dışından onu aramam gerek. Benim div gizlidir varsayılan olarak. mantığı şudur: Bir yere navigasyon menüsünde düğmesine basın ve göstermelidir () "fonksiyonu. div yürütmek Nasıl elde edebilirim?
Benim web sayfası:
<div ng-controller="MyController">
<input type="text" ng-model="data.firstname" required>
<input type='text' ng-model="data.lastname" required>
<form ng-submit="update()"><input type="submit" value="update"></form>
<form ng-submit="get()"><input type="submit" value="get"></form>
</div>
Benim js:
function MyController($scope) {
// default data and structure
$scope.data = {
"firstname" : "Nicolas",
"lastname" : "Cage"
};
$scope.get = function() {
$.ajax({
url: "/php/get_data.php?",
type: "POST",
timeout: 10000, // 10 seconds for getting result, otherwise error.
error:function() { alert("Temporary error. Please try again...");},
complete: function(){ $.unblockUI();},
beforeSend: function(){ $.blockUI()},
success: function(data){
json_answer = eval('(' data ')');
if (json_answer){
$scope.$apply(function () {
$scope.data = json_answer;
});
}
}
});
};
$scope.update = function() {
$.ajax({
url: "/php/update_data.php?",
type: "POST",
data: $scope.data,
timeout: 10000, // 10 seconds for getting result, otherwise error.
error:function() { alert("Temporary error. Please try again...");},
complete: function(){ $.unblockUI();},
beforeSend: function(){ $.blockUI()},
success: function(data){ }
});
};
}
CEVAP
Burada dışarıdan kumanda işlevi çağırmak için bir yol
angular.element(document.getElementById('yourControllerElementID')).scope().get();
get() denetleyici bir iÅŸlevi olduÄŸu.
Geçiş yapabilirsiniz
document.getElementById('yourControllerElementID')`
için
$('#yourControllerElementID')
JQuery kullanıyorsanız.
Ayrıca Eğer fonksiyonu eğer Görünümü değişen bir şey demektir, aramalısın
angular.element(document.getElementById('yourControllerElementID')).scope().$apply();
değişiklikleri uygulamak için.
Not gereken bir diğer şey, kapsamları sayfa yüklendikten sonra başlatılır, kapsam dışından yöntemleri çağırmak her zaman sayfa yüklendikten sonra yapılmalıdır. Başka kapsamına hiç almazsınız.

Dosya giriş alanları değişiklikleri ko...
Nasıl PHP bir JavaScript işlevini çağı...
Nasıl JavaScript ile boş bir dize için...
Bir dize kontrol etmek için nasıl &quo...
Nasıl iPhone SDK üzerinde etkin bir İn...