0

我有这个代码:

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),
    }
});

它有效,但我不知道为什么。我已经阅读了解析的文档,应该是 map key : Stringkey : function

eval(id) 和 {..} 是整数和对象,而不是工厂函数,据我所知,Resolve 使用 angular.injector().invoke(),但在对象或整数上返回错误

但控制器正确解析objid。为什么它适用于对象或整数?医生有错吗?或 uibmodal 解析与路由解析不同?

4

1 回答 1

0

你的 resolve 对象需要是一个 string: function 的映射,其中 string 是将注入到模态控制器的依赖项的名称,而 function 是一个工厂函数,用于在实例化控制器时提供该依赖项。

obj: {"id" : id, "description" : "blabla"},
id: eval(b),

在您的情况下,键是 'obj' 和 'id' ,它们的值是 {"id" : id, "description" : "blabla"} 和 eval(b) resp。

于 2017-04-05T09:35:14.627 回答