3

本文がロードされたときに実行される JS 関数からの HTML を挿入したいと考えています。最初はボディは空です。

この HTML には AngularJS コマンドがありますが、問題は AngularJS が HTML を解析しないことです。

<!doctype html>
<html ng-app>
    <head>
        <script>
            function loadHTML(){
                html = '<ul ng-controller="phoneCtrl"><li ng-repeat="phone in phones">{{phone.name}}<p>{{phone.snippet}}</p></li></ul><script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script'+'><script src="controllers.js"></script'+'>';
                document.write = html;
            }
        </script>
    </head>
    <body onload="loadHTML();" ></body>
</html>

controller.js の内容は次のとおりです。

function phoneCtrl($scope) {
    $scope.phones = [
    {
        "name": "Nexus S",
        "snippet": "Fast just got faster with Nexus S."
    },

    {
        "name": "Motorola XOOM™ with Wi-Fi",
        "snippet": "The Next, Next Generation tablet."
    },

    {
        "name": "MOTOROLA XOOM™",
        "snippet": "The Next, Next Generation tablet."
    }
    ];
}
4

1 に答える 1

3

onload コードは、AngularJS が実際に DOM を解析した後に実行されます。したがって、それらを Angular に取り込むには、$compile を使用する必要があります。$compile の仕組みについてはドキュメントを参照してください。

于 2012-12-01T05:38:49.203 に答える