php - 在 $http 之后不工作,使用 Angular的AngularJS的Php文件

  显示原文与译文双语对照的内容

我有一个 Angular 文件,它的中包含了一堆文件,当我直接包含它时,它会使用 $http 。


$http.get('include/step'+step+'.php').
success(function(data, status, headers, config) {
 $("#tab_"+step).html(data);
});

它会停止工作,然后我就能看到这样的东西: {{category.title}} 等显示为文本而不是获取它的值。

我开始使用 Angular,我试图让 Angular 识别通过ajax响应添加的代码,或者仅仅是一个 $http 响应。

我也尝试了

但我得到了 angular.bootstrap(data)


Error: [ng:areq] Argument 'eventCatCtrl' is not a function, got undefined

eventCatCtrl是我在这个文件中第一个通过 $http. 生成的控制器

我也做了这个 angular.bootstrap(data, ['eventApp'] ); eventApp是我主要 MODULE的NAME 。 只是为了信息,这些http内容在div内完成,我已经在体内定义了我的MODULE,如果有问题。

对更多代码的请求需要花费 :

函数从以下位置触发:


<div class="form-group progress-tracker__buttons" ng-controller="StepChange">
 <input type="button" class="btn btn-primary btn-save" value="Save">
 <input type="button" class="btn btn-default btn-next disabled" value="Next" ng-click="changeStep($event)">
 <div class="last-saved">Last saved: Not saved yet</div>
</div>

下面是我的MODULE,控制器和函数:


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

eventApp.controller('StepChange', function($scope, $http){
 $scope.changeStep = function($event){
 $http.get('include/step2.php').
 success(function(data, status, headers, config) {
 $("#tab_2").html(data);
 });
 };
});

在我的step2.php 文件中,有以下部分:


<div class="panel-group form-group sortable" id="catAccordion" ng-controller="eventCatCtrl">
 <div ng-repeat="category in categories.list">
 <p>{{category.title}}</p>
 </div>
</div>

我有一个工厂,如下所示:


eventApp.factory('EventCategories', function () {
 var EventCategories = {};
 EventCategories.list = [
 {
 name:"Robert Downey Jr.",
 character:"Tony Stark/Iron Man"
 },
 {
 name:"Chris Evans",
 character:"Steve Rogers/Captain America"
 }
 ];
 return EventCategories;
});

我有一个类似这个工厂的控制器:


eventApp.controller("eventCatCtrl", function($scope, EventCategories){
 $scope.categories = EventCategories;
});

时间: 作者:

启动 Angular 后不能初始化控制器。 正因为如此,你收到了错误


Error: [ng:areq] Argument 'eventCatCtrl' is not a function, got undefined

此外,$http.get 还应用于保存/获取数据。 对于包括其他布局和用户界面,你应该使用模板和指令。 你将能够使用 $scope 中的变量控制嵌入式html内容的显示。

在 Angular 中延迟加载

http://ify.io/lazy-loading-in-angularjs/

此外,你还需要公开控制器 register 服务,如下所示:


eventApp.config(['$controllerProvider', function($controllerProvider) {

 eventApp.controllerProvider = $controllerProvider;
}]);

并且,在注册控制器时,请使用以下命令:


eventApp.controllerProvider("eventCatCtrl", function($scope, EventCategories){
 $scope.categories = EventCategories;
 });

...