我收到一个包含数字的对象:从午夜起以秒为单位的时间 我希望对象保持几秒钟,但以小时格式显示此时间。
由于过滤器处于输入状态,因此无法使用过滤器 该指令是要走的路。我在这里找到了问题,但他们都以相反的方式做到了(更改对象,而不是视图): Using angularjs filter in input element
<input type="text" ng-model="time"/>
<script>
angular.module('app')
.controller('AppController', ['$scope', function($scope){
$scope.time = "32400";
}]);
</script>
所以,输入需要是:09:00 $ scope.time = 32400。
更改小时数时,$ scope.time需要更改(以秒为单位)
答案 0 :(得分:0)
我的问题中的Stackoverflow链接正在解决我的问题,但由于Jsfiddle没有显示更改数据的两种方式,因此没有帮助我。
这可能会有所帮助......
<input type="text" ng-model="seconds" seconds-to-time/>
<script>
angular.module('app')
.controller('AppController', ['$scope', function($scope){
$scope.seconds= "32400";
}])
.directive('timeToSeconds', function(){
return {
restrict : 'A',
require : 'ngModel', // tells Angular that our directive requires the controller of another directive
link : function(scope, el, attrs, ngModelController){ //We use the controller of ngModel directive!
//we add methods to the ngModelController
//From view to model
ngModelController.$parser.push(function(data){
return data * x;
});
//From model to view
ngModelController.$formatters.push(function(data){
return data / x;
});
}
};
});
</script>