2015-07-30 1 views
-5

Я новичок в anggular js. У меня есть страница test.html.

test.html

<!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://localhost/yii2-angular-seed-master/frontend/controllers/CategoryController/testdata

404 Не найдено

"NetworkError: 404 Не найдено - http://localhost/yii2-angular-seed-master/frontend/controllers/CategoryController/Index"

+0

Не создавайте json вручную ... это склонно к ошибкам. Строка, которую вы создали, не будет отображаться как действительная json – charlietfl

+1

Если вы новичок в угловом, то почему бы вам не изучить ее через [учебник] (https://docs.angularjs.org/tutorial/step_01), который поможет вы понимаете, как делаются запросы и как обрабатываются ответы. – callmekatootie

+1

Также укажите более конкретную задачу в ваших вопросах – charlietfl

ответ

1

В 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(); 
?> 

EDIT: мне пришлось изменить вашу $ str, а одиночная цитата, окружающая ключи и значения, недействительна, я изменил ее на две части le quotes ", которые действительны.

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

+0

, но я хочу передать функцию с моего углового контроллера – harish

+0

Какая функция в вашем угловом контроллере? –

+0

Мне нужен ответ testdata(). Я передам эту функцию от моего углового контроллера – harish

1

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

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

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


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

Теперь нет ошибки. Но в Firebug ничего нет (пустая строка) – harish

+0

отправил ответ обратно со страницы ответа. –

+0

как? посмотрите здесь мой funtion: - function actionIndex() { $ id = 2015; return $ id; } – harish