我有角度应用程序和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;
}]);
现在我想从控制器更新我的textarea:
function MyController($scope, Logger) {
$scope.logger = '';
Logger.log($scope.logger, 'Logs Logs Logs');
}
但它没有更新。如何从angular
服务更新textarea?
谢谢。
答案 0 :(得分:1)
让您的日志函数仅返回文本,并将返回的值分配给控制器中的$ scope属性。
$scope.logger = Logger.Log('log, log log');
或者你可以在log()调用之后调用$scope.$apply();
,但是接近numero uno更干净。