从外部按钮中清除与 Angular Bootstrap UI 选项卡集中的 textarea 关联的 ng-model

Posted

技术标签:

【中文标题】从外部按钮中清除与 Angular Bootstrap UI 选项卡集中的 textarea 关联的 ng-model【英文标题】:Clear the ng-model asssociated to textarea inside Angular Bootstrap UI tabset form an outside button 【发布时间】:2014-09-27 15:07:22 【问题描述】:

我使用 angular bootstrap ui tabset 创建了两个选项卡,两个选项卡都有 textareasng-model 关联,我在 tabset 之外有一个清除按钮,我想清除 @987654325当用户按下清除按钮时,textArea 在活动选项卡中的@。做这个的最好方式是什么?这就是我到目前为止所做的。

html

<tabset>
    <tab heading="Tab One">
        <textarea data-ng-model="data.tabOne" class="form-control"></textarea>
    </tab>
    <tab heading="Tab two">
        <textarea data-ng-model="data.tabOne" class="form-control"></textarea>
    </tab>
</tabset>
<button ng-click="clearFn()" class="btn btn-default btn-float-left">Clear</button>

控制器

.controller('myController', ['$scope', function ($scope) 
        $scope.data = 
            tabOne: '',
            tabTwo: ''
        ;

        $scope.ClearFn = function () 
            // I want to clear the model of the active tabs textArea here.
        ;
    ]);

【问题讨论】:

【参考方案1】:

您可以使用标签的active 属性来查找当前活动标签。

<tabset>
  <tab heading="Tab One" active="activeState.tabOne">
    <textarea ng-model="data.tabOne" class="form-control"></textarea>
  </tab>
  <tab heading="Tab Two" active="activeState.tabTwo">
    <textarea ng-model="data.tabTwo" class="form-control"></textarea>
  </tab>
</tabset>

在控制器中:

.controller('myController', ['$scope', function ($scope) 
  $scope.data = 
    tabOne: 'ONE',
    tabTwo: 'TWO'
  ;

  $scope.activeState = ;

  $scope.clearFn = function() 
    // I want to clear the model of the active tabs textArea here.
    for (var key in $scope.activeState) 
      if ($scope.activeState[key]) 
        // active tab found
        $scope.data[key] = '';
        return;
      
    
  ;
])

Plunker 示例: http://plnkr.co/edit/ioJKua5XTeetBcvjGity?p=preview

【讨论】:

谢谢,这就是我想要的:)【参考方案2】:

由于ng-model做了一个作用域双向绑定,为了清除ng-model,你可以清除作用域变量。

.controller('myController', ['$scope', function ($scope) 
        $scope.data = 
            tabOne: '',
            tabTwo: ''
        ;

        $scope.ClearFn = function () 
            // I want to clear the model of the active tabs textArea here.
             $scope.data.tabOne ='';
           ;
    ]);

【讨论】:

谢谢,但我想清除活动选项卡的 ng-model。这样我就无法确定活动标签对了吗?

以上是关于从外部按钮中清除与 Angular Bootstrap UI 选项卡集中的 textarea 关联的 ng-model的主要内容,如果未能解决你的问题,请参考以下文章

Angular 10:使用浏览器的后退按钮从外部 URL 导航回来时,ngOnInit 未在 Firefox 中部署的应用程序版本中触发

如何使用 Angular 5 和引导程序放置 x 按钮以清除输入字段中的内容

Angular 按钮中的 Ag Grid 过滤器中的清除和应用不可见

android内部存储与外部存储理解

彻底理解android中的内部存储与外部存储

如何清除我的 Angular 反应形式?