【问题标题】:Angular: DOM Manipulation in $uibModalAngular:$uibModal 中的 DOM 操作
【发布时间】:2016-03-23 08:01:19
【问题描述】:

我正在使用 UI Bootstrap for Angular 创建模态对话框,这是模态的 HTML 模板:

<div class="modal-content">
  <div class="modal-body">
      ...
  </div>
  <div class="modal-footer">
      <button class="btn btn-primary" ng-click="save();">Save</button>
  </div>
</div>

这是模态指令的控制器:

app.controller('modalCtrl', [
    '$scope', function ($scope) {
        return $scope.save = function () {
            ...
        };
    }
]);

用这个来调用它:

$uibModal.open({
    templateUrl: '...',
    controller: 'modalCtrl'
});

当点击保存按钮时,我需要使用另一个 3rd 方库来更改按钮样式/动画,基本上是这样的:

button.loading();

执行此操作的理想方法是什么?我知道很多人说指令是做 DOM 操作的方式,但是我们在这里怎么做呢?

【问题讨论】:

    标签: angularjs twitter-bootstrap


    【解决方案1】:

    我想你可以试试这个:

    HTML 为元素添加一个特定的类:

    <button class="btn btn-primary thebutton" ng-click="save();">Save</button>
    

    JS 获取元素:

    $scope.save = function () {
       angular.element('thebutton').loading();
    };
    

    如果你想使用指令:

    HTML:

    <button thebutton class="btn btn-primary" ng-click="save();">Save</button>
    

    JS:

    .directive('thebutton', function() {
        return {
            link: function(scope, element, attrs) {
                element.on('click', function () {
                    element.loading();
                });
            }
        };
    });
    

    【讨论】:

    • 谢谢,这算作控制器中的 DOM 操作吗?许多人不推荐这种方法,这就是我试图避免它的原因。
    • 我也可以给你指导性的答案,给我一分钟
    猜你喜欢
    • 1970-01-01
    • 2018-12-13
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 2015-02-27
    • 2023-03-31
    • 1970-01-01
    相关资源
    最近更新 更多