Обмен данными между контроллерами в угловых JS

Я просто сделал это на freecodecamp. Его можно легко расширить.

function convertToRoman(num) {

  var roman ="";

  var values = [1000,900,500,400,100,90,50,40,10,9,5,4,1];
  var literals = ["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"];


  for(i=0;i<values.length;i++){
    if(num>=values[i]){
      if(5<=num && num<=8) num -= 5;
      else if(1<=num && num<=3) num -= 1;
      else num -= values[i];
      roman += literals[i];
      i--;
    }
  }


 return roman;
}
1
задан Karn Singh 4 March 2019 в 07:56
поделиться

1 ответ

Вы забыли зарегистрировать слушателей по нажатию кнопок:

<button ng-click="increment()">+</button>{{Holder.value}}

Надеюсь, это поможет. Полный рабочий пример ниже:

<!DOCTYPE html>
<html>
  <head>
    <title>AngularJS Services</title>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.0-beta.5/angular.min.js"></script>
  </head>
  <body>
    <div ng-app="dataServiceApp">
            <div ng-controller="ChildCtrl">
                    <h2>First controller</h2>
                    <button ng-click="increment()">+</button>{{Holder.value}}
                  </div>
                  <div ng-controller="ChildCtrl2">
                    <h2>Second controller</h2>
                    <button ng-click="increment()">+</button>{{Holder.value}}
                  </div>
    </div>
    <script>
        var myapp = angular.module("dataServiceApp",[]);
        myapp.factory('Holder', function() {
  return {
    value: 0
  };
});
myapp.controller('ChildCtrl', function($scope, Holder) {
  $scope.Holder = Holder;
  $scope.increment = function() {
    $scope.Holder.value++;
  };
});

myapp.controller('ChildCtrl2', function($scope, Holder) {
  $scope.Holder = Holder;
  $scope.increment = function() {
    $scope.Holder.value++;
  };
});
    </script>
  </body>
</html>

p.s. Я также полностью согласен с комментарием Дж. Б. Низета: проверьте, действительно ли вам нужно изучать AngularJS вместо Angular 2-7 / VueJS / React.

0
ответ дан CodeMonkey 4 March 2019 в 07:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: