Angularjs 角度用户界面路由器跟踪控制器分配

Angularjs 角度用户界面路由器跟踪控制器分配,angularjs,angular-ui-router,traceur,Angularjs,Angular Ui Router,Traceur,我正在尝试将控制器分配到ui路由器中的状态。控制器由traceur编译 状态分配如下所示: $stateProvider .state('form', { url: '/form' , templateUrl: 'views/form.html' , controller: 'FormController as Form' }) var FormController = function FormController($stateParams

我正在尝试将控制器分配到ui路由器中的状态。控制器由traceur编译

状态分配如下所示:

  $stateProvider
    .state('form', {
       url: '/form'
     , templateUrl: 'views/form.html'
     , controller: 'FormController as Form'
   })
var FormController = function FormController($stateParams, $http) {
this.data = {};
  this._stateParams = $stateParams;
  this._http = $http;
  this.formTemplate = "";
};
($traceurRuntime.createClass)(FormController, {
  submit: function() {
    console.log('submitted');
  }
}, {});
编译后的控制器如下所示:

  $stateProvider
    .state('form', {
       url: '/form'
     , templateUrl: 'views/form.html'
     , controller: 'FormController as Form'
   })
var FormController = function FormController($stateParams, $http) {
this.data = {};
  this._stateParams = $stateParams;
  this._http = $http;
  this.formTemplate = "";
};
($traceurRuntime.createClass)(FormController, {
  submit: function() {
    console.log('submitted');
  }
}, {});
我显然收到一个运行时错误,它说FormController不是一个函数。有办法绕过它吗?还有其他解决办法吗

有-我刚改变了定义的顺序

var app = angular.module('brokenApp', ['ui.router'])
.config(ApplicationConfig)
; 

// controller def in JS world
var FormController = function ($sc, $stateParams, $http) {
  $sc.title = "hello from scope";
  this.title = "hello from controller";
  this.data = {};
  this._stateParams = $stateParams;
  this._http = $http;
  this.formTemplate = ""; 
}; 

// DI
FormController.$inject = ['$scope', '$stateParams', '$http']

// controller injection into angular
app.controller('FormController', FormController); 
有新的
form.html

<h1>Hello Plunker!</h1>
<h3>$scope.title: </h3>
{{title}}

<h3>controller.title: </h3>
{{Form.title}}

检查工作版本

不是功能。。。通常意味着,你没有用angular注册。检查两次是否有
.controller('FormController',FormController)
。另外,state def不应包含大括号:
controller:'FormController as Form'
抱歉,粘贴错误,尝试了不同的操作。是的,大括号不存在,FormController已分配。事实上,如果我从编译的文件中删除
var FromController=
,一切都会正常工作。。。事实上;)更好的是。。。一些笨蛋,不工作的。。。待修复。。。为什么?因为“不是一个函数”几乎总是意味着
.controller('FormController',…
没有被称为带有代码的Pluner(很高兴看到先生;)享受令人惊叹的UI路由器;)