Javascript 角度UI路由器未加载我的控制器
因此,如果有必要,我在rails中使用angular。是的,我的链轮是正确的。因此,我的模板和路由正在正确加载。但我的控制器,虽然加载没有被ui路由器找到或被忽略。很长一段时间,我用 ng controller=“mainctrl” 在我的应用程序中修复问题并将其推到一边,但现在我需要在路由中加载控制器,并且控制器不工作。这是我的路由文件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
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'
})