2014-10-30 8 views
4

Это первый раз, когда я пытаюсь использовать службу $ location в AngularJS, чтобы проверить аргументы строки запроса. Я читал документы и пытался немного поиграть с ним в Plunkr, чтобы посмотреть, как его использовать, но до сих пор мне не удалось получить его для извлечения любых параметров из строки запроса.

Я тестировал его с помощью этого шлепнуть http://plnkr.co/edit/RIFdWa5ay2gmRa6Zw4gm?p=info

var app = angular.module('myApp', []) 
    .config(function($locationProvider) { 
    $locationProvider.html5Mode(true); 
    }); 

angular.module('myApp').controller('myCtrl', function($scope, $location){ 
    $scope.name = "Andrei"; 
    $scope.url = $location.host(); 
    $scope.path = $location.path(); 
    $scope._params = $location.search(); 
    }); 

Я прочитал, что установка html5Mode (истина) на $ locationProvider требуется для того, чтобы получить услугу $ местоположения для работы в качестве «ожидается »- что я сделал, но при настройке в моем плунге больше ничего не работает (вы можете установить его на false, и вы увидите, что привязка правильна правильно).

Я пропустил что-то в отношении службы определения местоположения?

Любая помощь или предложения оцениваются!

Спасибо!

+1

Ваш Plunker не работает .. для угловых 1.3 необходимо добавить базовый тег в вашем HTML .. и после того, что ваш plunker находится внутри фрейма без параметров запроса (как вы можете увидеть путь отличается от текущего URL-адреса) Я использую $ location.search() для получения параметров url, и это работает. –

ответ

2

В AngualarJS 1.3 $location в режиме HTML5 должен присутствовать тег <base>, чтобы он знал путь, по которому все ссылки относятся к. Вы можете добавить <base href="/" />, чтобы заставить его работать снова.

http://plnkr.co/edit/j9rd1PajNLQVJ8r4c8BZ?p=preview

+0

спасибо за ваш комментарий! Я пропустил базовую часть документации AngularJS. Действительно, как только это добавлено в index.html, код работает снова, но я до сих пор не вижу строку запроса, используя get() getter. Не следует в вышеуказанном сценарии (url) search() getter return {"p": "info"}? – AndreiC

+1

URL-адрес iframe, в котором выполняется код, фактически «http://run.plnkr.co/b5QdYqBeapjRDHkk/», строка запроса отсутствует. URL-адрес «edit» предназначен для приложения page/plnkr. – TheSharpieOne

+0

сделал автономный тест на моей машине и заставил его работать так, как я хотел в первую очередь. Большое спасибо за вашу помощь! – AndreiC

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