Javascript 使用AngularJs在标签中显示函数的字符串结果

Javascript 使用AngularJs在标签中显示函数的字符串结果,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,当使用angularJs时,调用将返回字符串并在标签中显示该字符串的函数的最佳方法是什么 我有三个下拉列表,当我在所有下拉列表中选择值时,我想显示一个标签。 标签的内容是在一个函数中计算的,所以在那个时刻(当所有3个下拉列表都选择了一些值时),我需要调用一个函数,该函数也将返回标签的值 我在html中添加的所有隐藏/显示标签逻辑如下: <div class="col-md-2" ng-show="newTestSessionCtrl.formData.sessionTim

当使用angularJs时,调用将返回字符串并在标签中显示该字符串的函数的最佳方法是什么

我有三个下拉列表,当我在所有下拉列表中选择值时,我想显示一个标签。 标签的内容是在一个函数中计算的,所以在那个时刻(当所有3个下拉列表都选择了一些值时),我需要调用一个函数,该函数也将返回标签的值

我在html中添加的所有隐藏/显示标签逻辑如下:

<div class="col-md-2" 
        ng-show="newTestSessionCtrl.formData.sessionTime && newTestSessionCtrl.formData.timeZone && newTestSessionCtrl.formData.sessionCloseInterval">
    <lable>Your local time</lable>
    <div ng-value="convertSelectedTimeZoneToClients()"></div>
</div>
所以当选择值时,我会显示一个标签,上面写着:您的本地时间 下面我想显示
convertedTimeZoneToClient()
的结果,它基本上是“YYYY-MM-DD HH:MM”格式的字符串

我是否可以在html上也执行类似的操作,或者我必须移动到controller?实现这一目标的最佳或最简单的方法是什么

我尝试了ng value,但我想我做得不对。没有显示任何内容,但控制台中也没有任何错误。

尝试以下操作:

<div ng-bind="convertSelectedTimeZoneToClients()"></div>

在函数中,您可以检查是否选中了下拉列表,然后计算并返回结果

$scope.getData = function () {
        if ($scope.ValueOfFirstDropDown != undefined && $scope.ValueOfSecondDropDown != undefined && $scope.ValueOfThirdDropDown != undefined) {
            //calculate result
            return result;

        }

    }
在你的html中

<label>{{getData()}}</label>
{{getData()}

更改选定值时,应调用此函数

<select ng-change="convertSelectedTimeZoneToClients();"></select>


<div class="col-md-2" 
        ng-show="newTestSessionCtrl.formData.sessionTime && newTestSessionCtrl.formData.timeZone && newTestSessionCtrl.formData.sessionCloseInterval">
    <lable>Your local time</lable>
    <div ng-bind="clientDateTimeZone"></div>
</div>

能否显示此函数ConvertSelectedTimeZoneToClient()的代码?请使用
{{ConvertSelectedTimeZoneToClient()}
。另外,ng bind比大括号好。@ParthTrivedi您好,我两个都试过了,但由于某种原因,我的函数从未被调用过…@nemo_87请检查我的回答它确实有效:)也许您的
convert…
函数没有返回任何内容,或者
ng show
中的子句返回false?当我从下拉列表中选择一些值时,标签会显示出来,因此ng show不是问题。当我查看控制台时,我看到函数返回字符串值。。。但它从来没有被显示。。。也许生成事物的顺序是个问题@它返回纯文本。我更新了问题并添加了函数的实现。但现在我意识到它从未被调用或调用。。。这就是问题所在。。。断点永远不会被击中…嗯@wro当所选值发生变化时,您应该调用此函数。设置另一个作用域变量并反映它们的值。正如您所说,我已经更改了所有内容,这看起来确实是一个很好的解决方案,但由于某些原因,即使在ng更改时也没有调用我的函数。我在每一个下拉列表中都添加了ng变化,但什么都没有。当我选择一些值时,会显示标签:“您的时区”,但没有结果,因为函数由于某种原因未被调用…:/@parthtrived您的函数应该类似于
$scope.convertSelectedTimeZoneToClients=function(){//code}
,这可能是问题所在。我的函数不在$scope中。我在控制器中有用于设置所有设置、注入等的构造函数,在构造函数之外我有函数。也许我应该从构造函数调用函数@ParthTrivedi@nemo_87获得成功?否:(仍在尝试。我无法更改控制器的形式,也无法在注入的构造函数之外定义$scope,但当我这样做时:this.$scope.convertselectedTimeZoneToClient();我的整个html由于某种原因被破坏…:/@ParthTrivedi
<select ng-change="convertSelectedTimeZoneToClients();"></select>


<div class="col-md-2" 
        ng-show="newTestSessionCtrl.formData.sessionTime && newTestSessionCtrl.formData.timeZone && newTestSessionCtrl.formData.sessionCloseInterval">
    <lable>Your local time</lable>
    <div ng-bind="clientDateTimeZone"></div>
</div>
   $scope.convertSelectedTimeZoneToClients = function()  {
    let timeZoneInfo = {
      usersTimeZone: this.$rootScope.mtz.tz.guess(),
      utcOffset: this.formData.timeZone.offset,
      selectedDateTime: this.toJSONLocal(this.formData.sessionDate) + " " + this.formData.sessionTime
    };

    let utcTime = this.$rootScope.mtz.utc(timeZoneInfo.selectedDateTime).utcOffset(timeZoneInfo.utcOffset).format("YYYY-MM-DD HH:mm");
    let localTime = this.$rootScope.mtz.utc(utcTime).toDate();
    localTime = this.$rootScope.mtz(localTime).format("YYYY-MM-DD HH:mm");
    //set It here
    $scope.clientDateTimeZone = localTime
      //return localTime;
  }