2015-11-09 3 views
0

Я пытаюсь обработать «щелчок колеса» и «щелкнуть правой кнопкой мыши» в новой вкладке/окне », чтобы загрузить целевое представление в новую вкладку/окно.Открыть новый вид в новой вкладке/окне

Скажем, в одном из моей точки зрения, у меня есть что-то вроде этого:

<li><a href="javascript:void(0)" ng-click="h.changeView('projects')">Time Tracking</a></li> 
    <li><a href="javascript:void(0)" ng-click="h.changeView('requests')">Dashboard</a></li> 

changeView() функция в мой контроллер выглядит следующим образом:

this.changeView = function(viewPath) { 
    $location.path(viewPath); 
    }; 

и конфигурация трассы, как это:

// Routes configuration 
app.config(['$routeProvider', function($routeProvider) { 
    $routeProvider 
    .when('/', { 
     templateUrl: 'requests/requestsList.html', 
     controller: 'requestsController', 
     controllerAs: 'r' 
    }) 
    .when('/requests', { 
     templateUrl: 'requests/requestsList.html', 
     controller: 'requestsController', 
     controllerAs: 'r' 
    }) 
    .when('/projects', { 
     templateUrl: 'projects/projectsList.html', 
     controller: 'projectsController', 
     controllerAs: 'p' 
    }) 
    .otherwise({ 
     redirectTo: '/' 
    }); 
}]); 

Как я могу обработать отображение нового вида в объявлении ifferent tab/window?

Кроме того, есть синтаксис в моем $routeProvider, что позволяет мне сочетать / и /requests в том же when(...)?

+1

Я понятия не имею, как сделать это таким образом, который взаимодействует с Угловое, но обычно вы бы поставить реальный URL в 'href', а затем функция обработчика событий будет читать это значение и использовать его для описания того, какой контент динамически загружается. – Quentin

+0

URL-адрес будет указывать на представление, которое в моем случае является только частью загружаемой страницы. – Ellone

+0

Тогда вы неправильно делаете URL-адреса. URL должен указывать на полную страницу (т. Е. Полная страница должна быть доставлена ​​сервером). Когда вы меняете часть контента с помощью JavaScript, вы должны использовать API истории (pushState & co), чтобы обновить URL-адрес до того места, где сервер будет доставлять только что созданную вами страницу по частям с помощью JS. – Quentin

ответ

-1

Простой HTMl поможет вам там. Добавить в ваш HTML код цель = «_blank»

+0

Это приведет к открытию моего представления на новой вкладке при щелчке левой кнопкой мыши по элементу, не так ли? – Ellone

+1

@Ellone - Скорее всего, он откроет 'javascript: void()' в новом окне. – Quentin

-1

Попробуйте использовать $ окно сервиса:

this.changeView = function(viewPath) { 
    $window.open(viewPath, '_blank'); 
}; 
+0

Вопрос заключается в том, как открыть * правильное содержимое * в новой вкладке/окне **, когда пользователь явно выбирает Open In New Tab/Window **, а не когда ссылку нажимают нормально. – Quentin

Смежные вопросы