为什么我在为 chrome 应用程序编码时无法在 routeProvider 中使用 controllerAs 语法?

Why am I not able to use controllerAs syntax in routeProvider when coding for a chrome app?

angular版本:1.4.9

您好,

我正在打包一个用 John Papa 代码风格编写的 angular 网络应用程序。但是我一直面临基本问题。其中之一就是设置 routeProvider。我想在控制器文件中配置它,但似乎不起作用。当我直接在模块配置中配置它时,它不接受 controllerAs 作为语法...

在 mycontroller.js 文件上

// Has no effect
angular.module('myDearModule').
controller('MyController', MyControllerFn).
config(function($routeProvider) {
    $routeProvider.when('/page', {
       templateUrl: 'tpl.html',
       controller: 'MyController',
       controllerAs: 'mycontrollerVm'
    });
});

function MyControllerFn() {
....

现在,如果我在加载所有内容后尝试,在一种 module.routing.js 文件中

// After setting up module and controller
angular.module('myDearModule').
config(function($routeProvider) {
    $routeProvider.when('/page', {
       templateUrl: 'tpl.html',
       controller: 'MyController',
       controllerAs: 'mycontrollerVm'
    });
});

无效...我也收到此错误:[ng:areq] 参数 'MyController' 不是函数。未定义

我已尝试根据此建议在视图之间切换:Using angular $routeProvider with packaged apps

指令和路由工作正常,但没有设置控制器:(

当我在视图中使用 ngController 语法时发生同样的错误。

我需要使用路由来保持此网站正常运行。我做错了什么还是没有办法?有人可以给我看一个在 chrome 应用程序中使用 controllerAs 的例子吗?我只找到了简单的示例(根本没有路由或页面更改)。

'MyController' is not a function. Got undefined

可能意味着您的控制器中存在语法错误。加载控制器、过滤器等应该没有错误消息。如果您发现任何错误并更正它,controllerAs 应该会按预期工作。