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

时间:2016-02-22 11:49:35

标签: angularjs google-chrome-app

角度版本:1.4.9

您好,

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

在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] Argument' MyController'不是一个功能。未定义

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

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

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

我需要使用路由来保持此网络正常运行。我做错了什么还是没有办法?有人可以在Chrome应用程序中向我展示控制器的示例吗?我发现只有简单的例子(根本没有路由或页面更改)。

1 个答案:

答案 0 :(得分:0)

'MyController' is not a function. Got undefined

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