通过Ajax注入时,角度代码未运行

时间:2014-12-05 09:33:29

标签: javascript ajax angularjs

我对Angular很新,因此找到了解决方法。

我知道ng-controller会在页面加载上运行。角度HTML元素将根据ng-controller的动作进行更新。

我想通过AJAX注入我的html代码,它由ng-controller组成。这意味着在页面加载后将注入此内容。

我注意到我的角度代码没有被执行。有没有办法让我重新开始角度?或者注册新控制器并运行它?

2 个答案:

答案 0 :(得分:0)

虽然这可能不是您正在寻找的确切解决方案,但我确信这可能是一个足够接近的解决方案;

$routeProvider
    .when('/customers',
        {
            templateUrl: '/app/views/template.html',
            resolve: resolveController('/app/controllers/dynamicController.js')
        });

答案 1 :(得分:0)

问题是Angular不能识别你用jquery做的任何dom操作。例如,附加到dom等。

你需要编译和链接你想要注入的任何html。我想说你想用指令来做它。

示例代码(如果您是在控制器内执行此操作)

var template = '<div ng-repeat="a in [1,2,3,4]">{{a}}</div>'
var element_to_add =  angular.element(template)
var linkFn = $compile(element_to_add);
linkFn($scope);

var target_element = $(css_selector)
target_element.html(element_to_add)// or target_element.append(element_to_add)

但就像我说的那样,从控制器追加到dom并不是一个好主意。在指令中执行此操作。