angular 之 延迟绑定controller

案例,比如

<body ng-app="myApp">

</body>

对于javascript代码中

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

function formController($scope, $http,$rootScope,$compile) {
    console.log($scope);
    console.log($rootScope);
    $scope.hello = 'wancheng';
}


// 延迟绑定controller
setTimeout(function () {

    // now you can use the injector.
    var $div = $('<div ng-controller="formController">123 <span ng-bind="hello"></span> {{hello}}</div>');
    $('body').append($div);
    
    // element  injector()
    // 返回的还是拥有 那几个方法的对象 invoke 方法
    // 是执行 带有 DI 方法的 方法
    angular.element(document.body).injector().invoke(function ($compile) {

        var scope = angular.element($div).scope();
        console.log(scope);  // rootScope 对象
        // 只是单纯的编译 html 和 数据之间的关系 
        $compile($div)(scope);
       // 必不可少,脏值检查
        scope.$digest();
    });
}, 1000);

app.controller('formController', formController);


你可能感兴趣的:(angular 之 延迟绑定controller)