Javascript 在模板上注册控制器$routeprovider或
问题是: 为什么angular会让您将控制器指定给管线Javascript 在模板上注册控制器$routeprovider或,javascript,angularjs,Javascript,Angularjs,问题是: 为什么angular会让您将控制器指定给管线 我的想法: 为什么不把控制器放在模板上呢?特别是该模板的最高级别。我错过了什么 根据我的理解,这种方式更有意义 我目前正在做的事情: 当呈现模板时,它在最高级别上带有ng控制器属性(我正在使用它!)。当你声明一对简单的模板控制器,比如 $routeProvider.when('/', { templateUrL: '...', controller: '...' }); 您可以轻松地在模板中声明控制器。没有“幕后操纵”行为,最终
我的想法: 为什么不把控制器放在模板上呢?特别是该模板的最高级别。我错过了什么 根据我的理解,这种方式更有意义 我目前正在做的事情:
当呈现模板时,它在最高级别上带有ng控制器属性(我正在使用它!)。当你声明一对简单的模板控制器,比如
$routeProvider.when('/', {
templateUrL: '...',
controller: '...'
});
您可以轻松地在模板中声明控制器。没有“幕后操纵”行为,最终结果将完全相同。但当你需要更复杂的东西时,问题就开始出现了
首先,假设您的控制器需要满足某些条件才能开始
$routeProvider.when('/', {
templateUrl: '...',
resolve: {
//do something before your controller kicks off
},
controller: '...',
});
此解析条件可能是您想要的任何条件。例如,要求用户登录。您可以在控制器内处理此逻辑,但一旦您需要任何其他路由来解决相同的情况,您将不得不复制代码
$routeProvider在配置中公开的另一个特性是controllerAs语法
有关更多信息,请参见“参数”中的“路线”部分问题的可能重复:您为什么问同样的问题?