Angular:使用自定义值显示的ng-model

时间:2015-06-22 14:48:36

标签: angularjs

我收到一个包含数字的对象:从午夜起以秒为单位的时间 我希望对象保持几秒钟,但以小时格式显示此时间。

由于过滤器处于输入状态,因此无法使用过滤器 该指令是要走的路。我在这里找到了问题,但他们都以相反的方式做到了(更改对象,而不是视图): 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需要更改(以秒为单位)

1 个答案:

答案 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>