【问题标题】:text in controller is never logged/never ran Angular Rails控制器中的文本永远不会被记录/永远不会运行 Angular Rails
【发布时间】:2015-07-03 11:23:09
【问题描述】:

我正在 Rails 中构建一个应用程序,并且我正在使用 Angular 作为前端的一部分,根据 json 文件中提供的数据生成视图。我一直在关注this 教程,但我似乎无法让我的控制器运行,我也不知道为什么。谁能帮帮我?

示例链接:http://localhost:3000/events/events1

events.coffee.erb

app = angular.module('EventsApp', ['ui.router', 'templates'])

app.config [
  '$stateProvider'
  '$urlRouterProvider'
  ($stateProvider, $urlRouterProvider) ->
    $stateProvider.state 'events',
      url: '/events/{id}'
      templateUrl: 'templates/_event.html'
      controller: 'EventsCtrl'
]

app.controller 'EventsCtrl', [
    '$scope'
    '$stateParams'
    ($scope, $stateParams) ->
        console.log $stateParams //this never shows up
        console.log 'Sup' //this never shows up
        $scope.greeting = 'Yo' //neither does this
]

events.html.erb

<div ng-app="EventsApp">
    Yo! //this shows up, but not {{greeting}}
    {{greeting}}
    <ui-view></ui-view>
</div>

_event.html

<script type="text/ng-template" id="/event.html">
    <div>
        {{greeting}}
        Yo!
    </div>
</script>

Rails 路线文件:

get "events/*path" => "events#events"

Rails events_controller.rb

class EventsController < ApplicationController
    layout "application"

    def events
    end
end

文件布局:

--app
-----assets
-------javascripts
----------templates
------------_event.html
----------events.coffee.erb
------views
--------events
----------events.html.erb

【问题讨论】:

    标签: javascript ruby-on-rails angularjs coffeescript


    【解决方案1】:

    您的 Angular 代码结构不佳。我认为您正在将您的 Javascript 语法与您的 Ruby 语法混为一谈......

    尝试更接近此的方法:

    angular.module('EventsApp', ['ui.router', 'templates'])
      .config(['$stateProvider', '$urlRouterProvider', 
        function($stateProvider, $urlRouterProvider) {
          $stateProvider.state('events', {
            url = '/events/{id}',
            templateUrl: 'templates/_event.html',
            controller: 'EventsCtrl'
          }
        }
      ])
      .controller('EventsCtrl', [
        '$scope', '$stateParams'
        function($scope, $stateParams) {
          console.log($stateParams); 
          console.log('Sup')
          $scope.greeting = 'Yo';
        }
      ]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-05
      • 1970-01-01
      • 2019-12-07
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-31
      相关资源
      最近更新 更多