Angularjs: как получить ответ от функции, используя $ http.get ()?

    <!DOCTYPE html>
<html>
<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14  /angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="customersCtrl">

<table>
<tr ng-repeat="x in names">
<!--  <td>{{ x.Name }}</td>
<td>{{ x.Country }}</td> -->
</tr>
</table>

</div>

<script>

var app = angular.module('myApp', []);


app.controller('customersCtrl', function($scope, $http) {
$http.get("../../../frontend/controllers/CategoryController/Index")
.success(function (response) {
//$scope.names = response.records;
console.log(response);
});
});
</script>


</body>
</html>
==================
category controller
==================
<?php
namespace frontend\controllers;

use Yii;
use common\models\LoginForm;
use frontend\models\PasswordResetRequestForm;
use frontend\models\ResetPasswordForm;
use frontend\models\SignupForm;
use frontend\models\ContactForm;
use yii\base\InvalidParamException;
use yii\web\BadRequestHttpException;
use yii\web\Controller;
use yii\filters\VerbFilter;
use yii\filters\AccessControl;

/**
* Site controller
*/
class CategoryController extends Controller
{
/**
* @inheritdoc
*/
public  $str;
public function actionIndex(){
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;

$id = 2015;

return $id;
}
}
?>

Когда я запускаю test.html, запрос (вызов) переходит на страницу cust.php и возвращает ответ.
Подскажите пожалуйста как мне отправить запрос в функцию?

Я получил следующую ошибку в firebug.

ПОЛУЧИТЬ HTTP: // локальный / yii2-угловое Семя-мастер / интерфейс / Контроллеры / CategoryController / TestData

404 Не Найдено

«Ошибка сети: 404 не найден — HTTP: // локальный / yii2-угловое Семя-мастер / интерфейс / контроллеры / CategoryController / Index«

-5

Решение

В cust.php вам также нужно вызвать функцию

<?php
header('Content-Type: application/json');
function testdata(){
$str='{"employees":[{"firstName":"John", "lastName":"Doe"},{"firstName":"Anna", "lastName":"Smith"},{"firstName":"Peter", "lastName":"Jones"}]}';
return $str;
}
echo testdata();
?>

РЕДАКТИРОВАТЬ: Мне также пришлось изменить ваш $ str, одинарные кавычки окружающие ключи и значения недействительны, я изменил его на двойные кавычки «, которые действительны.

Как сказал @charlietfl, лучше json_encode для ответа JSON, чем писать его самостоятельно.

1

Другие решения

Вы можете отправить имя вашей функции в post method и получить метод на странице php, используя который вы можете выполнять функции.

app.controller('customersCtrl', function($scope, $http) {

var request = $http.post('acctUpdate.php', {fun: "testdata"});


request.success(
function( html ) {
console.log(html);
}
); });
1

По вопросам рекламы [email protected]