首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将变量传递给同级控制器

如何将变量传递给同级控制器
EN

Stack Overflow用户
提问于 2016-07-15 16:58:18
回答 1查看 489关注 0票数 0

我有一个处理定购单的控制器。它有定购单号。

我在一个对话框中启动一个窗体,该对话框有自己的控制器。

我需要在这个对话框中显示来自PO控制器的采购订单号,这是对话框上的第三个输入框。做这件事的正确/推荐方法是什么?

我正在努力坚持最佳实践和约翰爸爸下面的造型指南。

谢谢。

代码语言:javascript
复制
index.html
<!DOCTYPE html>
<html>

<head>
  <script data-require="jquery@*" data-semver="3.0.0" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script>
  <script data-require="angularjs@1.5.3" data-semver="1.5.3" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.3/angular.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/ng-dialog/0.6.2/js/ngDialog.min.js"></script>
  <link rel="stylesheet" href="style.css" />
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ng-dialog/0.6.2/css/ngDialog-theme-default.min.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ng-dialog/0.6.2/css/ngDialog.min.css">
  <script src="script.js"></script>
</head>

<body ng-app="app">
  <h1>Hello Plunker!</h1>
  <div ng-controller="POController as po">
    {{po.purchaseOrderNumber}}
    <button ng-click="po.openDialog()">OPEN DIALOG</button>
  </div>


</body>

</html>

POLine.html

代码语言:javascript
复制
<div>
  <div>POLINE</div>
  <div>
    <input type="text" ng-model="poline.lineNumber">
  </div>
  <div>
    <input type="text" ng-model="poline.desc">
  </div>
  <div>
    <input type="text" ng-model="po.purchaseOrderNumber">
  </div>
  <div></div>
</div>

script.js

代码语言:javascript
复制
(function() {

  angular
    .module('app', ['ngDialog'])
    .controller('POController', ['ngDialog', POController])
    .controller('POLineController', [POLineController])


  function POController(ngDialog) {
    po = this;
    po.purchaseOrderNumber = "ORD1234"
    po.openDialog = openDialog;

    function openDialog() {
      ngDialog.open({
        template: 'POLine.html',
        className: 'ngdialog-theme-default',
        controller: 'POLineController',
        controllerAs: 'poline'
      });
    }

  }

  function POLineController() {
    poline = this;

    poline.lineNumber = "POLINE12345";
    poline.desc = "THIS IS A DESCRIPTION";

  }


})();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-15 17:24:22

使用ngDialog.open()的“解析”属性注入对话框控制器,如下所示:

代码语言:javascript
复制
ngDialog.open({
  template: 'POLine.html',
  className: 'ngdialog-theme-default',
  controller: 'POLineController',
  controllerAs: 'poline',
  resolve: { 
     poNumber: function () { 
        return po.purchaseOrderNumber; 
     }
  }
})

然后在POLineController中:

代码语言:javascript
复制
function POLineController(poNumber) {
  poline = this;

  poline.lineNumber = poNumber;
  poline.desc = "THIS IS A DESCRIPTION";

}

更新

这是一个工作的扑通

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38401521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档