Как правильно передать URL
Здравствуйте! Сразу извиняюсь, только только начал изучать данный фреймворк и хотелось бы сразу делать правильно.
Есть контроллер в котором имеется $http сервис get с запросом на сервер. путь не относительный т.к. рестфул располагается на поддомене. Причем домен хардкором указать не могу т.к. есть тестовый сервер где соответственно другой домен. Вообще суть задачи обратится к серверу, и через ng-repeat вывести данные на страницу. var projectForm = angular.module('project', []); projectForm.controller('ProjectForm', ['$scope','$http', function($scope, $http) { $http.get('***') }]); Сам урл формируется на пхп фреймворке. Просто в том же JQuery можно запихать в data атрибут например data-url="путь к апи". Как я понимаю в ангуляр можно сделать нечто подобное, но: 1. контроллер не имеет доступа (точней не должен по хорошему) к DOM и нужно использовать директивы 2. директива инкапсулирована и не имеет доступа к контроллеру. И тут нужно сливать области видимости контроллера и директивы. Я правильно понимаю суть реализации или как-то можно сделать по другому. п.ы глобальные переменные тоже использовать очень плохо :) |
GibsonG, вот пример связки "директивы повторения" и "данных контроллера"
http://angular.ru/tutorial/step_02 А вот пример работы с http... http://angular.ru/tutorial/step_05 |
Возможно или я не увидел что мне нужно, или вы не так меня поняли.
К примеру есть сервис в контроллере взятый из примера на сайте var phonecatApp = angular.module('phonecatApp', []); phonecatApp.controller('PhoneListCtrl', function ($scope, $http) { $http.get('phones/phones.json').success(function(data) { $scope.phones = data; }); $scope.orderProp = 'age'; }); здесь мы видим что $http.get() имеет относительный путь. В моем случае путь абсолютрый http://api.domain.ru и сам этот адрес строится при генерации шаблона странице в пхп фреймворке и может быть на тестовом домене один, на продакшине другой. И задача состоит в том чтобы протащить этот адрес. Вариан который я вижу сделать как-то так <div data-urlToApi="http://api.domain.ru"></div> где адрес будет генерироваться с участием php на основе роутов фреймворка. |
Цитата:
<some-dir ng-controller='myRestCtrl' ng-init='restBase = <?php echo $restBasePath ?>'> ........ </some-dir> |
Цитата:
|
Цитата:
Как выход сделать так, : $scope.$watch('restBase', function(val){ console.log($scope.restUrl); }); но насколько это верно т.к. насколько я понимаю от вешает наблюдателя на директивы? Цитата:
|
Цитата:
Серверный скрипт, при формировании страницы, может записать любое значение в любое место. ;) Пиши сразу в нужное тебе место и будет тебе счастие... |
это как я тебе на php странице напишу в js файл? :)
Я же не буду javascript код пихать в представление php. токен сам то можно из куков достать. а вот с другими параметрами сложне |
Цитата:
Страницу ты формируешь? Можешь создать глобальную js переменную? Вот создай и в конструкторе ее используй. И не фик меня пугать всякими новомодними словечками... :D |
в общем я тебя понял :yes:
но глобальные переменные как раз и следует избегать. Не зря в MVC модель контроллер и представление изолируют. И где ты видел новомодные словечки? :lol: |
Цитата:
Я вот тебе написал пожалуй самый "минимальный" способ доставки значения прямо в ангулар-контроллер практицки не требующий городить java-script на PHP. Или что, в пыхе начались какие-то проблемы с генерацией строк? :blink: // Извини, я не отслеживаю изменения в последних версиях... не успеваю за прогрессом... :lol: Цитата:
|
Цитата:
Хотя конечно спроси у папы, если что.... мало ли... :) |
Часовой пояс GMT +3, время: 19:44. |