Trigger $modal.open from app.js
Trigger $modal.open from app.js
我的app.js看起来像这样。我需要全局处理AJAX错误。如果我只使用console.log,这段代码可以很好地工作。但是,我需要使用$modal触发一个模态对话框,但不确定如何实现
感谢您的帮助。非常感谢。
define(['jquery','angularAMD', 'modernizr' ,'angular-ui-router'], function ($, angularAMD) {
var app = angular.module('ABC', ['ui.router','angular.css.injector']),
ngAMD = angularAMD(app);
app.run(function($rootScope){
$rootScope.$on('$stateChangeSuccess', function (ev, to, toParams, from) {
$rootScope.previousState = from.name;
$rootScope.currentState = to.name;
});
});
app.config(function($stateProvider, $urlRouterProvider, $provide, $httpProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state('first',
ngAMD.route({
url:'/first',
templateUrl: 'app/partials/first.html',
controller : 'firstCrtl'
})
)
.state('default',
ngAMD.route({
url:'/',
templateUrl: 'app/partials/default.html',
controller : 'defaultCrtl'
})
);
$provide.factory('globalAjaxInterceptor', function($q) {
return {
// On request success
request: function(config) {
return config || $q.when(config);
},
// On request failure
requestError: function(rejection) {
return $q.reject(rejection);
},
// On response success
response: function(response) {
if(response.data.status === "FAILURE" && response.data.failueCode === "F003") {
console.log('Trigger Modal');
}else if(response.data.status == "SUCCESS"){
console.log('Response Address Successs');
}
// Return the response or promise.
return response || $q.when(response);
},
// On response failture
responseError: function(rejection) {
// Return the promise rejection.
switch (rejection.status) {
case 404:
console.log('Destinaion not found!')
break;
default:
console.log('Trigger Modal');
}
return $q.reject(rejection);
}
};
});
// Add the interceptor to the $httpProvider.
$httpProvider.interceptors.push('globalAjaxInterceptor');
});
ngAMD.bootstrap();
return app;
});
他的问题的解决方案是修复Circular dependency error
或Cdep
。修复方法是使用$injector
显式注入$modal
。解决方案如下所示-
responseError: function(rejection) {
// Return the promise rejection.
switch (rejection.status) {
case 404:
console.log('Destinaion not found!')
break;
default:
$injector.invoke(function($modal) {
$rootScope.errorOverlay($modal);
});
}
return $q.reject(rejection);
}
相关文章:
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- Django无法通过urls.py配置找到djangular/app.js文件.如何进行故障排除
- 使用Express4将数组从Nodejs中的app.js传递到routes/index.js
- 从Babel 5.8.35升级到6.0.0将不会编译带有SyntaxError和意外标记的app.js
- Zendesk app.js示例用于发送外部电子邮件通知或AJAX请求
- Angularjs app.js getting URL
- 为Backbone.js源文件(amd-app.js)重新创建构建环境
- ionic框架中的app.js函数冲突
- Trigger $modal.open from app.js
- 在app.js之外调用app.locals
- 如何确保angularjs app.js中的同步加载
- Ionic 2 从子页面修改 app.js 中的变量
- 部分而不是 app.js 中的角度路由定义
- mongodb 的 collection.find() 在 Express app.js 文件中使用时出现问题
- 是否可以在没有app.js的情况下创建一个extjs应用程序的js文件(如构建版本)
- sails.js中app.js文件中的环境变量
- 我可以把一个参数从控制器传递到app.js吗
- app.js显示错误:TypeError:无法调用方法'查询'为null
- Rails 4 App-JS在开发模式下可以与Webrick合作,但不能与Passenger/Apache2合作
- 如何在expressjs中从html页面调用app.js函数