2017-05-03 20 views
0

ここに私のコードがありますが、ng-changeは決して呼び出されません。なぜ誰が知っていますか?あなたはそれの内部コントローラとそれに対応する機能を持っている必要がありますおかげng-changeイベントで定義済みのJavaScript関数を呼び出す方法は?

<html ng-app=""> 

<head> 
</head> 

<body data-ng-init="names=['A', 'B', 'C']"> 

<script src="resources/js/angular/angular.min.js"></script> 
<script src="resources/js/angular/angular.min.js.map"></script> 

<select class="form-control input-sm" 
     ng-model="fda" 
     ng-change="alert('changed')" 
     ng-options= "value for value in names" > 
</select> 


</body> 

</html> 
+1

あなたは、関数を記述してきました。例:ng-change = "changefunction()"とコントローラ内$ scope.changefunction = function(){alert( "changed"); } –

+0

私はそれは良い質問だと思いますが、それは '変更イベントで事前定義されたJavaScript関数を呼び出す方法でしょうか? '私はこの感覚に答えました –

答えて

2

は、

app.controller("myCtrl", function($scope) { 
$scope.alert = function(){ 
    alert("changed"); 
} 
}); 

DEMO

var app = angular.module("myApp", []); 
 
app.controller("myCtrl", function($scope) { 
 
$scope.alert = function(){ 
 
    alert("changed"); 
 
} 
 
});
<!DOCTYPE html> 
 
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 

 
<body ng-app="myApp" ng-controller="myCtrl"> 
 
    <div ng-init="names=['A', 'B', 'C']"> 
 
     <select class="form-control input-sm" ng-model="fda" ng-change="alert('changed')" ng-options="value for value in names"> 
 
    </select> 
 
    </div> 
 
</body> 
 

 
</html>

+0

ありがとう@Sajeetharan、それは動作します。しかし、私はまだ私のコードスニペットのようなコントローラなしで関数をインラインで呼び出すことができるかどうかを知りたいです。 – zjffdu

+1

@zjffduコントローラなしではできません。 – Sajeetharan

0

だけで、この行を追加します。あなたの罪トローラ$scope.alert = alert.bind(window);

var app = angular.module("myApp", []); 
 
app.controller("myCtrl", function($scope) {  
 
    $scope.alert = alert.bind(window); 
 
    });
<!DOCTYPE html> 
 
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 

 
<body ng-app="myApp" ng-controller="myCtrl"> 
 
    <div ng-init="names=['A', 'B', 'C']"> 
 
     <select class="form-control input-sm" ng-model="fda" ng-change="alert('changed')" ng-options="value for value in names"> 
 
    </select> 
 
    </div> 
 
</body> 
 

 
</html>

関連する問題