angular-tags:重置标签输入值

时间:2015-08-30 23:27:25

标签: javascript angularjs angularjs-directive

index.html

<div class="modal-header" >
                <button type="button" class="close" ng-click = "submit(information.add, information.subject, information.emailContent); close()">×</button>
                <h3>Compose Email</h3>
            </div>
            <div class="modal-body">
                <form name = "form.email">
                    <tags options="{addable: true}" typeahead-options="typeaheadOpts" data-model="information.add" data-src="toPerson as toPerson for toPerson in to"></tags>
                    <input type="text" placeholder="Subject" style="width:95%;" data-ng-model = "information.subject"><br />
                    <textarea style="width:95%;" rows="10" data-ng-model = "information.emailContent"></textarea>
                </form>
            </div>

emailViewController.js

 $scope.information = {
              add: [],
              subject: [],
              emailContent: []
            };

 $scope.clear = function() {
                if ($scope.information.add !== "") {
                  $scope.information = null;
              }  
            };   

我将$scope.information的值设置为null。执行此操作后,绑定到input的{​​{1}}框值和绑定到information.subject的{​​{1}}值将重置。但是,绑定到textarea的{​​{1}}值不会重置。有谁知道为什么会造成这种情况。

我认为information.emailContent窗口小部件中的tags input应该用于删除标记。我不知道如何实现它。可以在此处找到information.add源代码 - https://github.com/boneskull/angular-tags/blob/master/src/tags.js

这是一个吸虫 - http://plnkr.co/edit/PaG1k5N37BTOflObnN7K?p=preview

尝试1

这是我迄今为止所尝试过的内容 - http://plnkr.co/edit/jjE2bU8zkkyw36rtAymL?p=preview。我正在$scope.remove()内包含的函数中重新定义angular-tagsAngular-tags的值。我想也许我对$scope.info所做的更改没有应用到视图中,所以我尝试将其包装在null中。这样做并没有解决问题。

1 个答案:

答案 0 :(得分:0)

这段代码$scope.information = null;应该是你的所有信息并清除整个事情?这仅将包含数组的对象的引用设置为null。数组仍然存在,仍然被您期望的小部件引用 - (我不确定您为标记使用的库是如何实现的)

以下代码实际上清空了数组:

$scope.information.add.length = 0; $scope.information.subject.length = 0; $scope.information.emailContent.length = 0;