【发布时间】:2017-01-16 23:17:15
【问题描述】:
在我的 angularJS 应用程序中,我试图将参数传递给模态弹出窗口,以便在单击模态链接时,弹出窗口中会显示一个名称。模态链接来自一个自定义指令,该指令从外部服务获取名称列表。
我尝试关注this tutorial to Create an Angularjs Popup Using Bootstrap UI 和documentation for $uibModal,因为该教程有点过时了。
我可以让模态弹出窗口和控制器正常工作,但我无法向它传递参数。
我在Plunker 上复制了这个问题。
这个问题是我无法将titlename 参数从listings 指令传递给popupController(参见script.js in Plunker)。我认为我的决心设置不正确。在 Chrome 中设置调试器后,我可以看到 titlename 的值。
app.directive('listings', [function(){
return {
restrict: 'E',
...
controller: ['$scope','$uibModal', function listingsDirectiveController($scope,$uibModal) {
$scope.open = function (titlename) {
var uibModalInstance = $uibModal.open({
templateUrl: 'popup.html',
controller: 'popupController',
titlename: titlename,
resolve: {
item: function(){
return titlename;
}
}
});
}
}]
};
}]);
但它不会传递给popupController。在下面的代码中,titlename 的值是 undefined
app.controller('popupController', ['$scope','$uibModalInstance', function ($scope,$uibModalInstance, titlename) {
$scope.title1 = titlename;
$scope.close = function () {
$uibModalInstance.dismiss('cancel');
};
}]);
知道为什么会发生这种情况以及如何解决吗?这是在 AngularJS 中使用 resolve 的正确方法吗?
【问题讨论】:
标签: angularjs angular-ui-bootstrap angular-ui-modal