AngularJS ng-change не работает при запросе get с Ruby on Rails 5

Я использую …

  • Рубин на рельсах 5
  • AngularJS 1.3.20
  • Браузер Chrome или FireFox

Кажется, что ng-change event не работает, когда я запрашиваю get method like link с другой страницы. Но когда я отправляю запрос на следующую страницу, он работает.

При изменении значения select box событие onchange не происходит. Я ожидаю ng-перемен
должен достигнуть функцию changeHandler в образце.JS и консоль.log («ChangeHandler!!!») появляться.

Кроме того, я использую шаблон приложения Ruby on Rails. Таким образом, ng-app и ng-controller-это то же самое, что index1.html и index2.формат html.

** Дополнительная Информация
Я попытался Chrome ng-inspector для AngularJS инструмента. Но угловой панели нет. Но после перезагрузки той же страницы, он появляется. Что случилось?

index1.формат html.Эрб

<html lang="ja" ng-app="MyApp">
<body ng-controller="MyController">

<!-- For GET Method Request -->
  <div>
    <%= link_to 'Index2', sample_index2_path %>
  </div>

  <!-- For POST Method Request -->
  <div>
    <%= form_tag sample_index2_path do %>
      <%= button_tag "Click" %>
    <% end %>
  </div>
</body>
</html>

index2.формат html.Эрб

<html lang="ja" ng-app="MyApp">
<body ng-controller="MyController">
  <div>
    <form>
      <select id="eventTest" ng-model="eventTest" ng-change="changeHandler()">
        <option value="1">AAA</option>
        <option value="2">BBB</option>
        <option value="3">CCC</option>
      </select>
    </form>
  </div>
</body>
</html>

образец.js

angular.module('MyApp',[])
    .controller("MyController", ['$scope', function($scope) {
    $scope.eventTest;

    $scope.changeHandler = function () {
        console.log("ChangeHandler!!!");
    };
}]);

Это работает только пост, или получить и перезагрузить браузер.
Существует разница между исходными кодами вывода HTML GET и POST.
I’M stack over 3 days.

Пожалуйста дайте мне знать и совет для меня.

1 ответ

  1. Причиной неправильной работы углового модуля стал JavaScript lib turbolinks.
    Я исправил это, изменив настройку по умолчанию reload — > false или стирая данные-turbolinks-track.

      <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
    

    ↓↓↓↓

      <%= javascript_include_tag 'application', 'data-turbolinks-track': 'false' %>