0

我有角度应用程序,textarea其中:

<textarea id="log_text_area" readonly>{{logger}}</textarea>

我也有一项Logger必须更新的服务textarea

angular.module('app').factory('Logger', [function(){
    var logger = {};

    //
    // Write log
    //
    logger.log = function(log_area, arguments){
        // get current date
        var date = new Date();
        // log message
        var message = '';

        // traverse object and collect log message
        for (var i = 0; i < arguments.length; i++) {
            message += arguments[i] + " ";
        }

        console.log(log_area);

        // check log area
        if (log_area != undefined){
            // log value
            var value = "[" + date + "}] " + message + "\n";
            value += log_area;
            log_area = value;
        }
    };

    // return logger
    return logger;
}]);

现在我想从控制器更新我的文本区域:

function MyController($scope, Logger) {     
    $scope.logger = '';

    Logger.log($scope.logger, 'Logs Logs Logs');
}

但它不更新。如何从angular服务更新文本区域?

谢谢你。

4

1 回答 1

1

让您的日志函数仅返回文本并将返回的值分配给控制器中的 $scope 属性。

$scope.logger = Logger.Log('log, log log');

或者你可以$scope.$apply();在 log() 调用之后调用,但是方法 numero uno 更干净。

于 2013-07-08T15:17:09.427 回答