Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在模板上注册控制器$routeprovider或_Javascript_Angularjs - Fatal编程技术网

Javascript 在模板上注册控制器$routeprovider或

Javascript 在模板上注册控制器$routeprovider或,javascript,angularjs,Javascript,Angularjs,问题是: 为什么angular会让您将控制器指定给管线 我的想法: 为什么不把控制器放在模板上呢?特别是该模板的最高级别。我错过了什么 根据我的理解,这种方式更有意义 我目前正在做的事情: 当呈现模板时,它在最高级别上带有ng控制器属性(我正在使用它!)。当你声明一对简单的模板控制器,比如 $routeProvider.when('/', { templateUrL: '...', controller: '...' }); 您可以轻松地在模板中声明控制器。没有“幕后操纵”行为,最终

问题是: 为什么angular会让您将控制器指定给管线


我的想法:

为什么不把控制器放在模板上呢?特别是该模板的最高级别。我错过了什么

根据我的理解,这种方式更有意义

我目前正在做的事情:


当呈现模板时,它在最高级别上带有ng控制器属性(我正在使用它!)。当你声明一对简单的模板控制器,比如

$routeProvider.when('/', {
  templateUrL: '...',
  controller: '...'
});
您可以轻松地在模板中声明控制器。没有“幕后操纵”行为,最终结果将完全相同。但当你需要更复杂的东西时,问题就开始出现了

首先,假设您的控制器需要满足某些条件才能开始

$routeProvider.when('/', {
  templateUrl: '...',
  resolve: {
    //do something before your controller kicks off
  },
  controller: '...',
});
此解析条件可能是您想要的任何条件。例如,要求用户登录。您可以在控制器内处理此逻辑,但一旦您需要任何其他路由来解决相同的情况,您将不得不复制代码

$routeProvider在配置中公开的另一个特性是controllerAs语法


有关更多信息,请参见“参数”中的“路线”部分

问题的可能重复:您为什么问同样的问题?