Intereting Posts
Невозможно использовать интерпретатор командной строки Добавление узла XML в PHP Страница загрузки PHP PHP: получить имя браузера SQLSTATE : ошибка синтаксиса или нарушение доступа – подготовленный отчет PDO «GRANT» Laravel 5.3: настройка часовых поясов на основе местоположения пользователей Загрузка не работает правильно, если файл слишком большой CodeIgniter 3.0.3 ci_session не сохраняет данные сеанса в таблице ci_sesstion Шифрование и расшифровка строк с помощью ключа PHP Как отображать HTML в браузере постепенно в течение длительного периода времени? Использование Twitter API начало давать страницу «Извините», не существует ошибки, даже если она работала ранее PHP организует «ВЫБОР ОПЦИИ» по ID Получают ли комментарии php время сервера? Gmail API PHP Client Library – Как отправлять большие вложения с помощью клиентской библиотеки PHP? я могу заменить php-код в ajax вместо url:

Передача данных пользователя из PHP / HTML в AngularJS

Я новичок в AngularJS и до сих пор учился, но я не рассматривал этот вопрос нигде на этом сайте. Я создаю традиционный веб-сайт html / php list, который передает данные, такие как идентификатор списка с индексной страницы, на страницу списка ( listr.npctimes.com ).

После некоторого начального воспроизведения с angularJS я понял, что это сила в одностраничном веб-приложении, поэтому я перестала пытаться поместить его на весь сайт и хочу создать веб-приложение для пользователя, чтобы изменить выбранный список на странице списка. К сожалению, я не понял, как получить идентификатор списка из данных GET в url (например, listr.npctimes.com/list.php?id=1 ) на контроллер angularJS, чтобы контроллер мог запрашивать элементы списка из конкретного списка.

PHP / HTML (с AngularJS)

<?php $list_id = $_GET['id']; ?> <div data-ng-app="listApp" data-ng-controller="listCtrl"> <ul data-ng-repeat="list in lists | orderBy:'edit_date':true"> <li> <a href="#">{{ list.name }}</a> </li> </ul> </div> 

Угловой контроллер JS

 listApp.controller("listCtrl", function ($scope, $http) { $http.get("http://listr.npctimes.com/php/items.php?list_id=1").success(function (response) { $scope.lists = response; }); }); 

В настоящее время list_id жестко запрограммирован в запросе HTTP http get request в angularJS, но я хотел бы получить переменную PHP list_id в контроллере angularJS, чтобы я мог использовать его для запроса элементов из соответствующего списка для настройки веб-приложения в первом место.

Файл items.php возвращает простой JSON, который выглядит как

 [{"id":"1","list_id":"1","name":"Renew Truck Registratiion","create_date":"September 2, 2014 07:20 PM","edit_date":"November 30, -0001 12:00 AM","checked":"0","rank":"0","notes":""},{"id":"2","list_id":"1","name":"Rental Showing on Thursday","create_date":"September 2, 2014 07:20 PM","edit_date":"November 30, -0001 12:00 AM","checked":"0","rank":"0","notes":""}] 

и могут быть загружены по адресу http://listr.npctimes.com/php/items.php?list_id=1

Что я пробовал

Я нашел пару сообщений об использовании переменной location, чтобы попытаться вытащить переменную get из URL-адреса, но всякий раз, когда я пытаюсь использовать ее, он выдает весь контроллер.

Я также попытался использовать php, чтобы установить значение скрытого элемента в HTML и вытащить его с помощью jQuery в контроллере angularJS, но это привело к «неопределенной» переменной.

Любая помощь приветствуется! Благодаря!

Вы не должны использовать <?php ... ?> Или ссылку на PHP сайт или что-то подобное в своем Angular front-end, потому что, как только вы решите использовать Angular, его значение означает, что все ваши интерфейсы построены с помощью Angular, PHP это серверный язык. Просто отправьте запрос на сервер, затем получите данные и отобразите …

Чтобы передать параметры прохождения / получения, вы можете $routeProvider .

В вашем приложении app.js :

 angular.module('exampleApp', [ 'ngRoute' ]) .config(function ($routeProvider) { $routeProvider .when('/', { templateUrl: 'views/main.html', action: 'home' }) .when('/list/:itemId', { templateUrl: 'views/item.html', action: 'lists' }); }); 

Затем, после того как вы загрузили список на свою домашнюю страницу, вы можете установить href для каждого элемента:

 <div data-ng-app="exampleApp" data-ng-controller="listCtrl"> <ul data-ng-repeat="list in lists | orderBy:'edit_date':true"> <li> <a href="#/list/{{list.id}}">{{ list.name }}</a> </li> </ul> </div> 

Теперь в вашем itemCtrl вы можете обрабатывать идентификатор $routeParams поставщиком $routeParams

 angular.module('exampleApp.controllers', []) .controller('itemCtrl', function ($scope, $sce, $route, $routeParams, $http){ $scope.$on("$routeChangeSuccess", function( $currentRoute, $previousRoute ){ if( $routeParams.itemId ){ // use http to get the item which has id = $routeParams.itemId } }); }); 

Надеюсь, что эта помощь, любые проблемы, которые вы можете опубликовать в качестве комментария