Tim*_*sen 8 angularjs angular-ui
在我的应用程序中,我发现用户没有登录后我想打开一个模态对话框:
.when('/showtask/:id', {templateUrl: 'Home/Template/showtask', resolve: ShowTaskCtrl.resolve, access: { allowAnonymous: false },
resolve: {
userAuthenticated: ["$http", "$q", function ($http, $q) {
var deferred = $q.defer();
$http.get('/api/Authentication/UserAuthenticated').then(function (data) {
if (data.data != "null") {
deferred.resolve(data.data);
}
else {
var modalInstance = {
templateUrl: 'Home/Template/loginfailed',
controller: 'ModalInstanceCtrl',
modalpart: ['modalpart', function (modalpart) {
return modalInstance;
}]
};
$modal.open(modalInstance);
deferred.reject();
}
});
return deferred.promise;
}]
}
Run Code Online (Sandbox Code Playgroud)
由于它发生在路由更改上,我必须在实例中注入一个modalpart并在控制器中检索它.
var ModalInstanceCtrl = WorkerApp.controller('ModalInstanceCtrl', ["$scope", "modalpart", function ($scope, modalpart) {
Run Code Online (Sandbox Code Playgroud)
但我一直收到这个错误:
未知提供者:modalpartProvider < - modalpart
我怎么解决这个问题?
我正在看的PS原始代码在这里:http://angular-ui.github.io/bootstrap/(在模态下)
我从来没有$modal像你正在做的那样在路线改变中使用服务,所以不确定它是如何工作的.然而,只看你的$modal代码,它看起来是错误的.正确的方法应该是:
var modalOptions = {
templateUrl: 'Home/Template/loginfailed',
controller: 'ModalInstanceCtrl'
};
$modal.open(modalOptions);
Run Code Online (Sandbox Code Playgroud)
然后你的控制器定义:
WorkerApp.controller('ModalInstanceCtrl',
["$scope", "$modalInstance", function ($scope, $modalInstance) {
// Do your stuff
}]);
Run Code Online (Sandbox Code Playgroud)
根据文档,该$modal服务将自动处理对$modalInstance控制器的注入.
| 归档时间: |
|
| 查看次数: |
21105 次 |
| 最近记录: |