私はいくつかのサービスを持っています。デバッグして、このサービスの変数の状態を確認したいです。私のコードは以下です(コードの下の説明):
module.factory('Data', function () {
    var current = [], unlocked = [], all = [];
    return {
        current: current,
        unlocked: unlocked,
        total: all
    }
});
module.controller('debugPlaneController', ['$scope', 'Data', function ($scope, data) {
    $scope.data = data;
}]);
module.factory('someService', ['Data', function (data) {
    var initDebugMode = function () {
        var style = "style='width: 500px; height: 100px; background-color: #ccc;";
        var template = "
            <div "+style+" ng-controller='debugPlaneController'>
                <p>data.current = {{ data.current }}</p>
                <p>data.total = {{ data.total }}</p>
                <p>data.unlocked= {{ data.unlocked }}</p>
            </div>
        ";
        $(".someClass > .childClassOfSomeClass").append(template);
    };
    // some more methods, for example
    var push = function (name) {
        data.current.push(name);
        data.all.push(name);
    }
    // etc
    return {
        initDebug: initDebugMode,
        push: push
        // some more methods
    }
}]);
module.controller('mainController', ['$scope', 'someService', function($scope, someService) {
    someService.initDebug();
    someService.push('lala');
});
だから、私はコントローラを持ついくつかのアプリを持っていますmainController。その中でサービスを利用したいsomeService。pushメソッドを使用しています。nameこのメソッドは、引数からデータ サービスtotalのcurrent配列にデータをプッシュしますData。initDebug()ご覧のとおり、からメソッドを呼び出しmainControllerたので、画面にデバッグ ウィンドウを表示します。currentarraysとdata-serviceの状態totalを表示したい。unlockedData
実際には、ウィンドウが画面に表示されますが、次のように表示されます。
data.current = {{ data.current }}
data.total = {{ data.total }}
data.all = {{ data.all }}
そのため、AngularJS テンプレートは補間されませんでした。それらを補間する方法+このブロックでそれらをライブ更新する必要があります(angularJSが実際に行うように)。
アップデート
$コンパイルを使用します。
だから私は自分のinitDebugMode機能をこのように変更する必要がありますか?:
module.factory('someService', ['Data', '$compile', function (data, $compile) {
    var initDebugMode = function () {
        var style = "style='width: 500px; height: 100px; background-color: #ccc;";
        var scopeImitation = { data: data };
        var template = "
            <div "+style+" ng-controller='debugPlaneController'>
                <p>data.current = {{ data.current }}</p>
                <p>data.total = {{ data.total }}</p>
                <p>data.unlocked= {{ data.unlocked }}</p>
            </div>
        ";
        $compile(template)(scopeImitation);
        $(".someClass > .childClassOfSomeClass").append(template);
    };
// etc...
]);
$compileサービスの2 番目のブラケットに変数を正確に渡すにはどうすればよいですか? 私はこれを正しく使用しましたか?