AngularJS和Rails视图需要页面刷新

4
我有一个Rails应用程序,其中一些视图中包含AngularJS。每当我点击一个链接进入一个页面时,比如说/certifications,我会看到这个: bad reload 然后当我重新加载页面或在url栏中按下enter键请求它时,它就可以正常显示了,像这样: good reload 这两个页面的重新加载方式是否有所不同,从而导致了AngularJS出现问题?我需要使用Angular路由器或其他什么东西吗?我已经将视图和控制器的代码放在下面了。感谢您的帮助!
控制器:
@aquaticsApp = angular.module 'aquaticsApp',
  ['ngResource', 'aquaticsAppFilters']


@aquaticsApp.controller 'CertsCtrl', ['$scope', 'Certs',
  @CertsCtrl = ($scope, Certs) ->
    $scope.formatDate = (dateString)  ->
      d = new Date(dateString)

      curr_month = d.getMonth() + 1
      curr_date = d.getDate()
      curr_year = d.getFullYear()

      "#{curr_month}/#{curr_date}/#{curr_year}"

    $scope.sorter =
      value: 'firstName'

    Certs.get (data) ->
      $scope.certNames = data.certification_names
      $scope.users = data.users
]

查看:

<div ng-app='aquaticsApp' class='table-responsive'>
  <table ng-controller='CertsCtrl' class='table table-hover table-condensed'>
    <thead>
      <tr>
        <th ng-click='sorter.value="lastName"'>Last Name</th>
        <th ng-click='sorter.value="firstName"'>First Name</th>
        <th ng-click='sorter.value="location"'>Location</th>
        <th ng-repeat='certName in certNames' ng-click='sorter.value=certName.name'>
          {{certName.name}}
        </th>
      </tr>
    </thead>
    <tbody>
      <tr ng-repeat='userData in users | orderBy:sorter.value'>
        <td>{{userData.lastName}}</td>
        <td>{{userData.firstName}}</td>
        <td>{{userData.location}}</td>
        <td ng-repeat='certName in certNames' class='{{userData[certName.name + "class"]}}'>
          {{formatDate(userData[certName.name])}}
        </td>
        </td>
      </tr>
    </tbody>
  </table>
</div>

你需要等待一段时间,直到Angular编译和链接完成,然后表达式才会被替换。在我看来,代码似乎完全没有问题。你可以尝试将绑定(双{)放在一个div中,以避免它们在页面准备好之前显示出来。 - Ivaylo Strandjev
它似乎无法编译。表达式会无限期地停留在那里,除非我进行刷新或通过地址栏访问页面。 - kmanzana
你确定已经包含了Angular脚本吗? - Ivaylo Strandjev
绑定方面的小诀窍是不显示 {{}},当正在加载时。我尝试了一下,但它没有解决我的问题。你是对的!出于某种原因,当我点击链接到这个页面时,我的所有资源都没有被加载。只有在查看网络资源时才会显示 HTML 文件。 - kmanzana
那么,我和你一样困惑了 :) - Ivaylo Strandjev
通过一些谷歌搜索,似乎问题可能出在 turbolinks 上。感谢您让我朝正确的方向前进,因为我陷入了困境。如果我解决了这个问题,我会告诉你的。 - kmanzana
1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接