我无法在控制器中注入UI路由的属性。它给予
错误:$注射器:unpr未知提供商
当我在状态定义对象中使用控制器属性为以下
.state('widget', {
url: '/widgets',
template: '<h1>{{name}}</h1>',
controller: function(widget, $scope) {
$scope.name = widget.name;
},
resolve: {
// standard resolve value promise definition
widget: function() {
return {
name: 'myWidget'
};
},
// resolve promise injects sibling promise
features: function(widget) {
return ['featureA', 'featureB'].map(function(feature) {
return widget.name+':'+feature;
});
}
}
});
然后它运行良好,我能够在控制器中获得 widget ,并且能够在HTML中使用。
请参阅小提琴以获取代码。
http://jsfiddle.net/sunilmadaan07/ugsx6c1w/8/
可能是我犯了一个愚蠢的错误。在发布此问题之前,我已经尝试使用简单对象返回,请向属性承诺对象。
预先感谢。
您无法使用所使用的代码在指令中获得已解决的数据。基本上,您正在尝试使用Angular1.3.x。
的较旧版本实现基于组件的结构。您有两个选择来实现这一目标。
创建路由控制器,然后您可以作为本地依赖性访问控制器,然后将该依赖项用作绑定到指令。这是示例-http://plnkr.co/edit/topmluxc7ghxteyl0ifj?p=preview
将角版升级到1.5.x,并使用
"ui-router-route-to-components": "^0.1.0"
在此工作示例 - http://jsfiddle.net/ugsx6c1w/25/
为了使控制器能够使用解析器,它应该是路由组件(仅在UI路由器1.x中)或路由控制器。
widget
和 features
是本地依赖项,它们未在喷油器中注册,在应用程序中的任何地方都没有路由控制器/组件。
如下所述,解析器可以传递给UI路由器0.3.x中的嵌套组件,并直接注入到1.x的路由组件中。