我有这段代码:
var b = 1
var a = $uibModal.open({
ariaLabelledBy: 'modal-title',
ariaDescribedBy: 'modal-body',
templateUrl: 'enteModal.html',
controller: 'enteCtrl',
resolve: {
obj: {"id" : id, "description" : "blabla"},
id: eval(b),
}
});
它有效,但我不知道为什么。 我已阅读doc的解决方案,该地址应为地图密钥:字符串或密钥:功能
eval(id)和{..}是一个整数和一个对象,而不是工厂函数,据我所知,Resolve使用angular.injector()。invoke(),但是对象或整数返回错误< / p>
但控制器正确解析 obj 和 id 。为什么它适用于对象或整数?文档错了?或uibmodal解决方案与路线的解决方法不一样?
答案 0 :(得分:0)
您的resolve对象需要是string:function的映射,其中string是将注入到模态控制器中的依赖项的名称,而function是一个工厂函数,用于在控制器时提供该依赖项实例化。
obj: {"id" : id, "description" : "blabla"},
id: eval(b),
在你的情况下,键是'obj'和'id',它们的值是{“id”:id,“description”:“blabla”}和eval(b)resp。