我对Angular很新,因此找到了解决方法。
我知道ng-controller会在页面加载上运行。角度HTML元素将根据ng-controller的动作进行更新。
我想通过AJAX注入我的html代码,它由ng-controller组成。这意味着在页面加载后将注入此内容。
我注意到我的角度代码没有被执行。有没有办法让我重新开始角度?或者注册新控制器并运行它?
答案 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并不是一个好主意。在指令中执行此操作。