AngularStrap模态用法

时间:2015-09-15 20:34:08

标签: angularjs twitter-bootstrap angular-strap

我目前正在使用AngularStrap v2.3.1和AngularJS v1.4.5。

我在使AngularStrap的模态工作时遇到了一些麻烦。它很可能是对它应该如何工作的误解,因为文档没有太大帮助。我在我的应用程序中使用控制器语法。

根据我的理解,我可以在控制器中创建一个对象:

vm.editModal = {
    contentTemplate: '/templates/edit.html',
    backdrop: 'static',
    show: false
};

然后在我看来,我会使用带模态属性的bs-modal:

<a href="" bs-modal="ctrl.editModal">

然而,我得到的只是一个空白的模态。它实际上似乎没有从editModal获取任何属性。所以它让我相信这样做只使用标题和内容属性。那么它是一个基本的模态吗?

我也尝试过使用$ modal服务,我注入了控制器。然后尝试:

vm.editModal = $modal({
    show: false,
    contentTemplate: '/templates/edit.html',
    backdrop: 'static',
});

我使用了相同的HTML:

<a href="" bs-modal="ctrl.editModal">

然而,在这种情况下,我在控制台中遇到了一堆错误,但它也没有工作。一些错误;

[ng:cpws] Can't copy! Making copies of Window or Scope instances is not supported.
[$rootScope:infdig] 10 $digest() iterations reached. 

一旦我能够正常工作,我就会在模态加载之前尝试解析数据。但我还没到那么远。

如果有人能指出我正确的方向,我们将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

mgcrea有一个很好的例子,使用服务与模态

交换信息
.service('$confirm', function($modal, $rootScope, $q) {
  var scope = $rootScope.$new();
  var deferred;
  scope.title = 'confirm';
  scope.content = 'Confirm deletion?';
  scope.answer = function(res) {
    deferred.resolve(res);
    confirm.hide();
  }

var confirm = $modal({template: 'confirm.tpl.html', scope: scope, show: false});
var parentShow = confirm.show;
confirm.show = function() {
  deferred = $q.defer();
  parentShow();
  return deferred.promise;
}

return confirm;
})

.controller('ModalDemoCtrl', function($scope, $confirm) {
$scope.delete = function() {
    $confirm.show().then(function(res) {
      console.warn('answered', res)
    })
};

此处 - &gt; http://plnkr.co/edit/KnRMGw5Avz2MW3TnzuVT

希望这有帮助