Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度UI路由器未加载我的控制器_Javascript_Ruby On Rails_Angularjs_Angular Ui Router - Fatal编程技术网

Javascript 角度UI路由器未加载我的控制器

Javascript 角度UI路由器未加载我的控制器,javascript,ruby-on-rails,angularjs,angular-ui-router,Javascript,Ruby On Rails,Angularjs,Angular Ui Router,因此,如果有必要,我在rails中使用angular。是的,我的链轮是正确的。因此,我的模板和路由正在正确加载。但我的控制器,虽然加载没有被ui路由器找到或被忽略。很长一段时间,我用 ng controller=“mainctrl” 在我的应用程序中修复问题并将其推到一边,但现在我需要在路由中加载控制器,并且控制器不工作。这是我的路由文件 app.config(['$stateProvider','$urlRouterProvider', function($stateProvider, $ur

因此,如果有必要,我在rails中使用angular。是的,我的链轮是正确的。因此,我的模板和路由正在正确加载。但我的控制器,虽然加载没有被ui路由器找到或被忽略。很长一段时间,我用

ng controller=“mainctrl”

在我的应用程序中修复问题并将其推到一边,但现在我需要在路由中加载控制器,并且控制器不工作。这是我的路由文件

app.config(['$stateProvider','$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
  $stateProvider
  // The home routes are at the top of the page.
  .state('home', { // This is our navbar, it leads to all of our login screens
    url: '/home',
    templateUrl: 'home/nav.html',
    authenticate: true,
    controller: 'AuthCtrl'
  })
.state('login', {
  url: '/login',
  templateUrl: 'home/login.html',
  authenticate: false,
  contoller: 'AuthCtrl'
//   controller: function($scope) {
//     $scope.usererror_hide = true;
//     $scope.passworderror_hide = true;
//  }
})

 $urlRouterProvider.otherwise("/login");
现在有点疯狂的是,如果我取消对控制器的注释:函数逻辑,它就会工作。但由于某种原因,它找不到我的AuthCtrl。所以我不确定这是铁路问题还是路线问题,因为它们似乎都在运行

这是我的控制器文件,虽然我不相信这是问题的根源

var app= angular.module('planoxApp')


  app.controller('AuthCtrl',['$http','$scope', '$localStorage',  //be careful with the order of http/scope, they get screwey
  '$stateParams','$filter','$state','AuthService','$uibModal',
  function($http,$scope,$localStorage, $stateParams,$filter,$state,AuthService,$uibModal){

    $scope.selectedGlobal = "" //For our future global search, move it to nav
    $scope.datas = [] //For global crap, move to nav

    //My variable collections that I need access too
    $scope.usererror_hide = true;
    $scope.passworderror_hide = true;
myapplication.js文件

//=require jquery
//=require jquery_ujs
//=require jquery-ui
//=require jquery-minicolors
//=require tinycolor
//=require bootstrap
//=require angular
//= require angular-route
//=require angular-rails-templates
//require angular-minicolors
//=require angular-animate
//=require angular-bootstrap
//require angular-bootstrap/ui-bootstrap-tpls-0.14.3.js
//=require lodash
//=require angular-resource
//=require holderjs
//=require angular-holderjs
//=require restangular
//=require angular-dragdrop
//=require angular-strap
//=require nya-bootstrap-select
//=require angular-ui-router
//=require angular-ui-router.stateHelper
//=require angular-color-picker
//= require angular-xeditable
//=require angularjs-file-upload
//=require ngstorage
//= require_tree ./templates
// = require_tree .
还有我的app.js文件

planoxApp= angular.module('planoxApp',
['ui.router',   
'templates',   
'nya.bootstrap.select', 
'ngAnimate',
'ui.bootstrap',  
'main-directives',
'color.picker',   
'xeditable',     
'restangular', 
'ngDragDrop', 
'angularFileUpload',
'ngStorage', 
'ngHolder',
'ngResource'
// 'mgcrea.ngStrap',
// 'mgcrea.ngStrap.typeahead',
// 'mgcrea.ngStrap.tooltip',
// 'mgcrea.ngStrap.helpers.parseOptions',

])
最后是实际的html文件,该文件正在加载中

<div id="login" >
  <div class="container">
    <div class="row vertical-offset-100">
    <div class="col-md-4 col-md-offset-4">
      <div class="panel panel-default">
        <div class="panel-body">
          <h1> PlanoX</h1>
          <h4> A Catchy Line About PlanoX. </h4>
          <form accept-charset="UTF-8" role="form">
                  <fieldset>
              <div class="form-group">
                <input class="form-control" placeholder="E-mail" name="email" type="text"  ng-model="login_username">
                  <p ng-hide="usererror_hide"> This email is not in our system, please try again or contact planomatic <p>
            </div>
            <div class="form-group">
              <input class="form-control" placeholder="Password" name="password" type="password" value="" ng-model="login_password">
                <p ng-hide="passworderror_hide"> This password is not in our system, please try again or contact planomatic <p>
            </div>
            <div class="checkbox">
                <label>
                  <input name="remember" type="checkbox" value="Remember Me"> Remember Me
                </label>
              </div>
            <input class="btn btn-primary btn-block" type="submit" value="Login" ng-click="CheckUser(login_username, login_password)">
          </fieldset>
            </form>
            <p>© 2015 PlanoX LLC | 888-988-PlanoX (3453) | info@PlanoX.com</p>
        </div>
    </div>
  </div>
  </div>
</div>
</div>
这是访问它的正确方法

 .state('home.index', {       // our home page for employee standard
      url: '/index',
      controller: 'HomeCtrl',
      views:{
        "":{  templateUrl: 'home/home.html',
              controller: 'HomeCtrl'},
        "assembly@home.index":{  templateUrl: 'home/assembly.html'},
        "client@home.index":{ templateUrl: 'home/client.html'},
        "photoplan@home.index":{ templateUrl: 'home/photoplan.html'}
      },
      authenticate: true

    })

这只是为了防止将来有人看到此问题并遇到类似问题。

设置控制器时检查输入错误:

.state('login', {
  url: '/login',
  templateUrl: 'home/login.html',
  authenticate: false,
  controller: 'AuthCtrl'
})

controller

您好,可能是您的$stateProvider:)在更新版本中的“访问控制器的方式不正确”示例中,您已经编写了两次
controller:'HomeCtrl'
,第二次出现在
authenticate:true
之后。非常感谢,你说得对,问题出在类型上。那真令人尴尬。但我有另一个路由问题,我要补充到我原来的问题。我已经解决了这个问题,但这对未来可能会发现这个问题的人来说是件好事。
.state('login', {
  url: '/login',
  templateUrl: 'home/login.html',
  authenticate: false,
  controller: 'AuthCtrl'
})