在ajax调用期间不调用Angular控制器

时间:2015-09-08 13:03:15

标签: ajax angularjs symfony

我在Symfony中有一个动作,它呈现以下html:

<div ng-controller="Ctrl1">
    <div ng-init="loadTarget('http://url/target')" ng-bind-html="target_content"></div>
</div>

http://url/target也是Symfony中的一个动作 以下html:

<div ng-controller="Ctrl2">
    <div ng-bind-html="con"></div>
</div>

角度代码如下:

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

app.controller('Ctrl1', ['$scope', '$http', '$sce', function($scope, $http, $sce) {
    $scope.loadTarget = function(ajaxUrl) {

    $http({
      method: 'HTML',
      url: ajaxUrl
    }).success(function(data, status) {
      $scope.target_content = $sce.trustAsHtml(data);
    }).error(function(data) {
    });
  };
}]);

app.controller('Ctrl2', ['$scope', '$sce', function($scope, $sce) {
    var v = '<b>Hello World</b>';
    $scope.con = $sce.trustAsHtml(v);
}]);

两个视图都扩展了导入依赖项的布局,并包含ng-app ='app'调用。

问题是永远不会调用第二个控制器(Ctrl2)。同时,如果我将第二个动作的url直接放在浏览器中并点击“Go”,它会按预期执行并加载数据。这显然是一个非常简化的例子,顺便说一句,我无法在plunker中工作,因为它根本不会进行ajax调用,说它是“无法连接到任何应用程序实例”,但这里是链接以防万一。

http://plnkr.co/edit/YRv3M1ZX7FMiFICAUq7m

非常感谢任何帮助。

0 个答案:

没有答案