angularjs - 删除数组中的项目而不更新 View

标签 angularjs angular-ui-bootstrap

我以这种方式在我的 View 中有动态选项卡(Angular UI Bootstrap):

 <uib-tabset active="1" id="tabs" class="col-md-10">
            <uib-tab ng-repeat="tab in filaCtrl.tabs" ng-click="filaCtrl.getChatTab(tab.protocolo)">
                <uib-tab-heading >
                    <div style='display: flex; align-items: center; justify-content: center;'>
                        <h5 style='margin-right: 10px;'>Protocolo: {{tab.protocolo}}</h5>
                        <h7 ng-md-icon icon='cancel' style='fill:#F44336' size='16' ng-click='filaCtrl.closeTab(tab.protocolo, $index)'><h7>
                    <div>
                </uib-tab-heading>
            <div class="tab-content">
(...)

我的函数 filaCtrl.closeTab() 删除一个选项卡,即数组 filaCtrl.tabs 中的一个项目。但是当删除一个项目时, View 会更新并“关闭”所有选项卡,即刷新页面。
self.closeTab = function (protocolo, $index) {
          self.tabs.splice($index, 1);
        };

如何在不刷新页面的情况下删除项目?

最佳答案

ng-repeat进行双向绑定(bind),以便 View 中更改的对象更新 Controller ,反之亦然。

如果要一次性绑定(bind)tabs数组,你可以定义你的 ng-repeat声明为:

<uib-tab ng-repeat="tab in ::filaCtrl.tabs" ng-click="filaCtrl.getChatTab(tab.protocolo)">

请注意 ::语法将一次性绑定(bind)您的数组。

关于angularjs - 删除数组中的项目而不更新 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43056919/

相关文章:

javascript - ionic 软后退按钮,$rootScope.IonicGoBack

angular - 验证错误 : Progress Plugin Invalid Options

html - 在 html head 中有条件地渲染 css

javascript - Angular JS : get ng-model on ng-change

javascript - AngularJs ngRoutes 不工作

angularjs - 中心 Angular 模态用户界面

javascript - 如何在指令中定义两个 ng-click 函数?

javascript - 仅搜索 ui.bootstrap typeahead 中的特定字段

javascript - 如何清除 angularjs 中的 uib-typeahead 下拉列表

javascript - 如何在 Angular 中取消绑定(bind) $on?