Привязка AngularJS не работает. при вызове функции angularjs из функции javascript

#javascript #html #angularjs

Вопрос:

Я вызываю функцию angularjs из функции javascript. из функции javascript я передаю переменную и оцениваю переменную в $scope.usersName. Но значение не меняется.

Ниже приведен код, который я написал

 <!DOCTYPE html>
<html data-ng-app="javaScript">
<head>
<meta charset="ISO-8859-1">
<title>Call AngularJS function using JavaScript</title>
<script
    src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
<script type="text/javascript">
    var serviceModule = angular.module('javaScript', []);   
    serviceModule.controller('javaScriptController', function($scope) {
        $scope.javaScriptCallAngular = function(value) {
            $scope.usersName = value;
        };
    
    }); 
    function javaScriptCall(value){
        var scope = angular.element(document.getElementById('idForJS')).scope();
        scope.javaScriptCallAngular(value);
    }   
</script>
</head>
<body id="idForJS" data-ng-controller="javaScriptController">
    <h2>Click below to get User Name:</h2>
    <div>
        <button onclick="javaScriptCall('Java Honk')">Get User name from JavaScript call to AngularJS</button>
        <div>User Name: {{usersName}}</div>
    </div>
</body>
</html>
 

Ответ №1:

может быть, вы сможете использовать, $scope.$apply() — это будет работать.

 $scope.javaScriptCallAngular = function(value) {                
  $scope.usersName = value;
  $scope.$apply();
};