0

我有以下控制器。

app.controller("testCtrl", function(){

    $scope.utcTime = 1380150771;
    $scope.parseTime = function(t){
      //return local time string
    }
});

在视图中,我有

<input type="text" ng-model="parseTime(utcTime)" />

它不工作。我可以将 ng-model 绑定到返回字符串的方法吗?在输入按钮中显示值的任何替代方法?

4

4 回答 4

0

您可以同时使用 ngChange 和 ngModel

JS

$scope.utcTime = 1380150771;
$scope.parseTime = function(){
  console.log($scope.utcTime);
  //return local time string
}

HTML

<input type="text" ng-change="parseTime()" ng-model="utcTime" />

ng-model 是通过标签和控制器进行映射的。

首先,您可以看到您在输入标签中指定的默认 utcTime (1380150771)。

当您更改输入标签中的文本时,ng-model(utcTime) 将在控制器中自动更改。

然后你输入的每个字母都会调用 ng-change(parseTime) 函数。

您可以通过 console.log 方法检查。

于 2013-09-26T01:57:16.710 回答
0

我的解决方案基于此来源:

https://groups.google.com/forum/#!topic/angular/1mnra0vamtg

我已经编辑了 Plunker 示例代码,用于使用计算函数ng-value生成和更新。ng-model请参阅下面的链接:

http://plnkr.co/edit/Fmqw0wp37Ndk1yuWvFkV?p=preview

此外,上面的示例向您展示了如何格式化结果以使用自定义过滤器进行显示。

在其他帖子中,有人建议使用$watch()来检测输入变量的变化并ng-model相应地更新变量。使用ng-value比使用好得多,$watch()因为后者会强制您在手表中包含所有输入变量,如果您有非常复杂的计算模型,这可能是不可能的。

塔雷克

于 2016-10-19T14:43:26.507 回答
0

尝试这样做

 app.controller("testCtrl", function(){

        $scope.utcTime = 1380150771;
$scope.result= $scope.parseTime( $scope.utcTime)
        $scope.parseTime = function(t){
          //return local time string
        }
    });

html

<input type="text"  ng-model="result" />
于 2017-01-04T05:41:07.397 回答
0

是的,您可以尝试以下操作:它的工作示例:

<input type="text" ng-model="parseTime(utcTime)" />

app.controller("testCtrl", function(){

    $scope.utcTime = 1380150771;
    $scope.parseTime = function(t){
      //return local time string
      new Date(t).toISOString();
    }
});
于 2017-08-29T01:34:25.513 回答