根据docs,$route.current
包含controller
和locals
。
例如,如果这是我的路线之一:
$routeProvider
.when('/item1/:value', {
templateUrl: 'item1.html',
controller: 'Item1Controller',
title: 'Item 1'
});
{{$route.current}}
打印出{"params":{"value":"value1"},"pathParams":{"value":"value1"},"loadedTemplateUrl":"item1.html","locals":{"$template":"<p>item 1:{{params}}</p>","$scope":"$SCOPE"},"scope":"$SCOPE"}
为什么没有controller
?
{{$route.current.title}}
打印出“第1项”。但上面没有属性title
?
$route.current
究竟包含哪些内容?
答案 0 :(得分:3)
$route.current
对象有几个记录的属性,controller
就是其中之一。 when
中提供了使用$route.current
方法在路径定义对象中定义的所有属性,因为后者prototypically inherits from a copy of the former:
$route.current.hasOwnProperty('controller') === false;
Object.getPrototypeOf($route.current).hasOwnProperty('controller') === true;
'controller' in $route.current === true;
当对象转换为字符串时,$route.current
对象原型中存储的属性不会被序列化。角度插值不应该被用作获得有价值的跟踪输出的可信方式,而是始终使用console
。