angularjs - 使用路由解析路由到组件 | AngularJS
问题描述
在阅读文章https://ui-router.github.io/guide/ng1/route-to-component后,我们尝试在 AngularJS 中使用 resolve。但不幸的是,我们收到的错误如下:
未知提供者:testProvider <- test <- SaleComponentController"
有人可以帮助我们在控制器“SaleComponentController”中显示“测试”作为输出吗
angular.module('salesApp')
.config(['$stateProvider',function($stateProvider){
$stateProvider.state('sales',{
url: '/sales',
data: {
requiredAuth: true
},
component: 'sales',
reloadOnSearch: false,
views: {//default
'@': {
component: 'sales'
},
'delivery@sales': {
component: 'delivery'
}
},
resolve: {
test: function(){
return "test";
}
}
})
}])
.component('sales',{
bindings: {
items: '<',
test: '@'
},
templateUrl: 'sales/sales.html',
controller: 'SaleComponentController'
})
.controller('SaleComponentController',
function (SalesService, $q, $transitions,test){
var $ctrl = this;
console.log("test");
console.log($ctrl.test);
});
解决方案
使用单向 ( "<"
) 绑定声明解析器绑定:
.component('sales',{
bindings: {
items: '<',
̶t̶e̶s̶t̶:̶ ̶'̶@̶'̶
test: '<'
},
templateUrl: 'sales/sales.html',
controller: 'SaleComponentController'
})
依赖于存在绑定的初始化逻辑应该放在控制器的$onInit()
方法中:
.controller('SaleComponentController',
̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶(̶S̶a̶l̶e̶s̶S̶e̶r̶v̶i̶c̶e̶,̶ ̶$̶q̶,̶ ̶$̶t̶r̶a̶n̶s̶i̶t̶i̶o̶n̶s̶,̶t̶e̶s̶t̶)̶{̶
function (SalesService, $q, $transitions){
var $ctrl = this;
this.$onInit = () => {
console.log("test");
console.log($ctrl.test);
});
});
有关详细信息,请参阅
推荐阅读
- javascript - 如何在 ajax 请求中包含字符串值和图像文件到后端?
- python - 编辑列表中的字符串
- html - 关闭 html wordpress 中的打开标签
- sql - 解析动态 SQL 语句中使用的参数中的单引号
- html - 在 IE 中播放按钮边框半径问题
- perl - 在 perl-remd-grp.perl 第 22 行的连接 (.) 或字符串中使用未初始化的值 $angle
- hbase - Columnar DB中“主键是数据”的含义是什么
- spring-boot - Springboot项目从1.4.2.REALESE改成2.1.7.REALESE后不起作用
- python-3.x - python pandas中列值为null时如何编写if-else语句?
- spring - 当一个线程依赖于spring boot中的前一个线程时如何管理事务