使用控制器作为语法的angular-ui模态 [英] angular-ui modal with controller as syntax

查看:48
本文介绍了使用控制器作为语法的angular-ui模态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在将angular-ui-bootstrap-bower#0.7.0与angular#1.2.10一起使用,并且在打开控制器为老式"控制器的模式时,一切正常.

I'm using angular-ui-bootstrap-bower#0.7.0 with angular#1.2.10 and when opening a modal where the controller is an "old fashioned" one, everything works fine.

但是,当我有一个控制器要与新的控制器作为语法"一起使用时,它将无法正常工作. angular-ui-bootstrap模态是否可以与

However, when I have a controller meant to use with the new "controller as syntax" it doesn't work. Does angular-ui-bootstrap modal work with controller as syntax? Does version 0.7 support it? How to do it?

推荐答案

您可以将ngController语法用于"controller"选项. 例如:

You can use the ngController syntax for the "controller" option. For example:

controller: 'modalController as modal'

有一个样本塞子

punker的代码:

Code from plunker:

<!DOCTYPE html>
<html>

  <head>
    <link data-require="bootstrap-css@3.1.1" data-semver="3.1.1" rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" />
    <script data-require="angular.js@1.2.16" data-semver="1.2.16" src="https://code.angularjs.org/1.2.16/angular.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.11.0/ui-bootstrap-tpls.js"></script>
    <script src="script.js"></script>
  </head>

  <body ng-app="app" ng-controller="demoController as demo">
    <h1>{{ demo.message }}</h1>

    <button class="btn btn-primary" ng-click="demo.modal()">Open modal</button>

    <script type="text/ng-template" id="modal.html">
      <div class="modal-header">
        <h3 class="modal-title">Modal window</h3>
      </div>
      <div class="modal-body">
        <pre>{{ modal.modalText }}</pre>
      </div>
      <div class="modal-footer">
        <button class="btn btn-default" ng-click="modal.cancel()">Cancel</button>
      </div>
    </script>

  </body>

</html>

script.js

script.js

angular.module('app', ['ui.bootstrap'])
.controller('demoController', function($modal) {
  this.message = 'It works!'
  this.modal = function() {
    $modal.open({
      controller: 'modalController as modal',
      templateUrl: 'modal.html'
    });
  };
})
.controller('modalController', function($modalInstance) {
  this.modalText = 'Modal Text'
  this.cancel = function() {
    $modalInstance.dismiss();
  }
})

这篇关于使用控制器作为语法的angular-ui模态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆