【发布时间】:2013-01-26 09:50:06
【问题描述】:
我是一个 angularjs 新蜜蜂。我正在尝试编写一个验证,当用户尝试关闭浏览器窗口时提醒用户。
我的页面 v1 和 v2 上有 2 个链接。单击链接时,它会转到特定页面。 这是重定向到 v1 和 v2 的代码
angular.module('myApp', ['myApp.filters', 'myApp.services', 'myApp.directives'])
.config(['$routeProvider', function($routeProvider) {
$routeProvider.when('/v1', {templateUrl: 'pages/v_1.html', controller: MyCtrl1});
$routeProvider.when('/v2', {templateUrl: 'pages/v_2.html', controller: MyCtrl2});
$routeProvider.otherwise({redirectTo: '/v1'});
}]);
我想在用户点击 v1 时弹出一条消息“如果他希望继续,他将要从 v1 离开”,点击 v2 时也是如此。 任何有关如何实现这一点的指针将不胜感激。
我得到了答案here,但它会在每个时间间隔后弹出消息。
更新代码;
控制器
function MyCtrl1() {
$scope.$on('$locationChangeStart', function (event, next, current) {
if ('your condition') {
event.preventDefault();
MessageService.showConfirmation(
'Are you sure?',
MessageService.MessageOptions.YES_NO, {
'YES': function () {
blockNavigation = false;
$location.url($location.url(next).hash());
$rootScope.$apply();
},
'NO': function () {
MessageService.clear();
$log.log('NO Selected')
}
});
}
});
}
MyCtrl1.$inject = [];
function MyCtrl2() {}
MyCtrl2.$inject = [];
【问题讨论】:
-
我相信您想要的术语是“newbie”。除非你真的是蜜蜂蛹。
标签: javascript model-view-controller angularjs angularjs-directive