如何在ngDialog中加载数据

2024-05-06

我有一个要求,我需要从 jsp 页面打开一个对话框,并且在打开该对话框时,我需要从服务器加载一些预填充的数据(使用 AJAX 调用)。如果我在打开对话框之前进行 AJAX 调用,我会获取数据,但对话框会像新页面一样加载。如果我尝试在新控制器中获取数据,该对话框仍然不反映数据。我应该使用什么来确保对话框反映我从服务器获取的数据

<div class="container-fluid" ng-controller="EditUserController">

    <div class="text-center container-fluid">
        <label class="sub-header">Edit User: {{userEmail}}</label>
    </div>

    <form action="editUser" method="post" name="editForm">
        <div>
            <div class="pull-right">
                <label>Delete User</label><br> <a href="#"
                    class="btn btn-block btn-sm btn-danger" ng-click="deleteUser(userEmail)">{{userEmail}}</a>
            </div>
            <div>
                <label>Change Role</label>
            </div>
            <div>
                <label>
                <input type="checkbox" ng-model="superVisor" name="superVisorFlag" 
                ng-true-value="1" ng-false-value="0" value="${existingUser.superVisorFlag}">
                Make a Supervisor</label>
            </div>
            <div>
                <input type="text" class="form-control" ng-model="email"
                    name="emailAddress" ng-disabled = "true"
                    ng-options="email for email in userEmail"
                    value="${existingUser.emailAddress}"
                    placeholder="Enter New User Email Address" bs-typeahead>
            </div>
            <div>
                <input type="text" class="form-control" ng-model="firstName"
                    name="firstName" value="${existingUser.firstName}"
                    placeholder="Enter First Name" bs-typeahead>
            </div>
            <div>
                <input type="text" class="form-control" ng-model="lastName"
                    name="lastName" value="${existingUser.lastName}"
                    placeholder="Enter Last Name" bs-typeahead>
            </div>


            <div>
                <a href="#" class="btn btn-sm btn-primary" ng-click="saveChanges()">Save Changes</a>
            </div>
        </div>
    </form>

</div>

<script type="text/javascript"
    src="<c:url value="/resources/scripts/admin.js"/>"></script>

上面是对话框的jsp。下面是我的 js 文件 -

var app = angular.module('scc-admin', [ 'ngDialog', 'mgcrea.ngStrap' ]);
app.factory("UserList", function() {
    var UserList = {};
    UserList.data = [ {
        userId : 111,
        userFirstName : "xxx",
        userLastName : "yyy",
        userEmail : "[email protected] /cdn-cgi/l/email-protection",
        userRole : "Admin"
    }, {
        userId : 222,
        userFirstName : "second",
        userLastName : "last",
        userEmail : "[email protected] /cdn-cgi/l/email-protection",
        userRole : "Manager"
    }];
    return UserList;
});
app.controller('UserSettingsController', function($scope, ngDialog, UserList,$http) {
    // variable for the bashboard list
    $scope.userList = UserList;
    $scope.editUser = function(userEmail) {             
        $scope.userEmail = userEmail;       
        ngDialog.open({
            template : 'editUser' ,
            className : 'ngdialog-theme-default',
            controller : 'EditUserController',
            closeByEscape : true,
            scope : $scope
        });
    };

    $scope.addUser = function() {
        ngDialog.open({
            template : 'addUser',
            className : 'ngdialog-theme-default',
            controller : 'AddUserController',
            closeByEscape : true,
            scope : $scope
        });
    };

});

app.controller('EditUserController', function($scope, ngDialog, $http) {

    ngDialog.template = $scope.output;
    ngDialog.$modelValue = $scope.output;

    var responsePromise = $http.get("initUser?email=" + $scope.userEmail);
        responsePromise.success(function(data, status, headers, config) {
                $scope.output = data;
                console.log(data);                
        });
    console.log($scope);

    $scope.deleteUser = function(){

        $scope.cfdump = "";

        var str = {emailAddress : $scope.userForm.emailAddress.$modelValue};
        str = JSON.stringify(str);

        var request = $http({
            method: 'post',
            url: "deleteUser?formData=" + str,
            data: ({formData:str})
        });

        request.success(function(html){
            alert("success");
        });

        request.error(function(errmsg){
            alert("Unable to delete user");     
        });     

    }

});

我正在用户设置控制器中打开一个对话框并尝试使用默认数据加载它。我尝试将新对话框的模板设置为 AJAX 调用的输出,但没有成功。我在这里缺少什么?


咨询后文档 https://github.com/likeastore/ngDialog#data-string--object--array,我学到了以下解决方案。它应该对你有用,就像对我一样。

在 ng-model 中传递数据(JSON 对象)ngDialog,你可以声明你的ngDialog如下。

ngDialog.open({
    template: 'my-template.html',
    className: 'ngdialog-theme-plain',
    data: $scope.myJSONObject
});

现在,完成上述部分后,您需要在弹出的 ngDialog 中绑定数据,所以去把ngDialogData.myJSONObjectFieldName在你的ng-model.

考虑以下示例以进行进一步说明。我们假设我们有myJSONObject如下。

myJSONObject={
   first_name: 'John',
   last_name: 'Doe'
};

To use first_name在你的 ngDialog 里面ng-model, 简单的说ng-model="ngDialogData.first_name".

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在ngDialog中加载数据 的相关文章

随机推荐

  • 在类中使用静态互斥体

    我有一个可以有很多实例的类 它在内部创建并初始化来自第三方库 使用一些全局变量 的一些成员 并且不是线程安全的 我考虑过使用 static boost mutex 它将被锁定在我的类构造函数和析构函数中 因此 在我的线程中创建和销毁实例对于
  • 获取邮件附件列表,无需下载整个邮件

    我想要一种方法来获取消息的附件列表 而不必下载整个消息 使用 Users messages get 我们可以设置要返回的字段 但我们只能选择 Payload 它将返回消息的整个有效负载 https developers google com
  • 使用 div 作为链接 - 打开新选项卡的选项?

    目前 我在我的网站中使用这一小段 js 来允许我的 div 充当按钮 div Google div 但当我浏览网页时 我经常做的事情是打开大量标签 有什么方法可以修改我的代码以实现此目的吗 这应该可以做到
  • C# 带有泛型的异常继承语法

    我在 NHibernate 类定义中偶然发现了这一点 public class SQLiteConfiguration PersistenceConfiguration
  • 如何对 KDB 中的每一行应用 max 函数?

    我想确保列中的所有值x不小于 0 5 所以我这样做 update x max x 0 5 from myTable 但这会产生错误 在KDB 工作室 http code kx com wiki StudioForKdb An error o
  • Android:删除行后如何刷新表格布局?

    我有一个从 txt 文件检索数据的表格布局 txt文件中的每一行数据都会有一行数据 假设我现在 txt 文件中有两行数据 那么将生成两个表行是有意义的 然后 我添加了一个 OnLongPress 监听器 当调用该监听器时 它将从 txt 文
  • 添加 Git 远程后“致命:拒绝合并不相关的历史记录”

    我已将远程存储库添加到我正在使用的文件夹中 git remote add origin https github com
  • 在有其他限制的情况下向有向无环图添加边

    我有一个 DAG 我有这个操作来在两个节点之间添加一条边 如果 A 可从 B 到达 则 B 是 A 的父级 如果 A 可以从 B 到达 而无需通过另一个节点 则 B 是 A 的直接父节点 该图的要求是 没有循环 对于任何节点 都有一个直接父
  • 如何在 TextView 中显示西班牙语文本?

    我有以下代码 我尝试在文本视图中显示西班牙语文本 当我运行应用程序时 它显示 在某些地方 谁能告诉我显示西班牙语的详细程序 protected void onCreate Bundle savedInstanceState super on
  • TypeError:“WebElement”对象不是可迭代错误

    我试图从维基百科主页提取所有链接 但此代码显示 TypeError WebElement object is not iterable 错误 import time from selenium import webdriver from s
  • 如何使用 Python 将具有非英语字符的变量打印到命令提示符

    我有一个 python 程序 可以生成泰米尔语字符串 例如 字符串可以是 我可以在打开文件时使用 utf 8 将其完全按照此处显示的方式写入文本文件 但是 当我使用 print 函数将相同的字符串变量写入 stdout 时 它会显示 3 个
  • 在汇总表中添加一列,其中包含每个变量的分布图

    有没有一种好方法来添加包含每个变量的分布图的列 例如这里 library vtable st iris 没有必要使用这个包 接受建议 尽管我知道这可能更容易做到ggplot 我总是渴望看看我是否可以达到类似的结果base R绘图工具 我将利
  • git 交互式变基:停止而不提交

    长话短说 有办法进去吗git rebase i停止编辑 没有提交 ID TLDR 更长的版本 背景 With git rebase i 我得到一个文本编辑器 我可以在其中定义命令列表 从pick COMMIT ID在每一行上 其中一个选项是
  • 如何使用 SHDocVw.InternetExplorer 命令最大化由 VBA 创建的 IE 窗口?

    正如标题所示 我试图最大化使用以下命令创建的 Internet Explorer 窗口 Set ie New SHDocVw InternetExplorer 代替 Set ie CreateObject InternetExplorer
  • 获取 Finder 前窗口的 POSIX 路径

    如何获取当前位于窗口列表顶部的 Finder 窗口的 POSIX 路径 最好使用某种 Cocoa 框架 但我对任何事情都持开放态度 背景 我需要这个 因为我想选择与正则表达式模式匹配的文件 从该路径递归开始 这个想法是使用 NSWorksp
  • 使用 cabal new-install 重新安装相同版本的软件包

    我正在开发 Haskell 包 我还没有上传到Hackage 版本号是0 1 0 0 我正在使用新风格的 Cabal 命令 为了在我处理包的同时测试它 使库可用于测试项目 我运行cabal new install lib构建包后 然而 我注
  • 什么时候应该首选 Loader 而不是 createQmlObject,反之亦然 - QML?

    两者都可以动态创建对象 什么时候应该Loader优先于Qt createQmlObjectQML 中反之亦然吗 The Loader可以被视为特定对象的占位符 它还使您能够通过Loader s id Qt createQmlObject通常
  • 将 R 中的向量按特定顺序转换为下三角矩阵

    我有一个向量 其中元素的顺序很重要 比如说 x lt c 1 2 3 4 我想将我的向量排列成具有特定顺序的下三角矩阵 其中每行包含向量的前一个元素 我的目标是获得以下矩阵 lower diag matrix 1 2 3 4 1 4 0 0
  • 当路由器处于历史模式时,PWA 不会加载(基于 Vue CLI 3 的项目)

    我有一个基于 Vue CLI 3 的应用程序 我想将其用作 PWA 我需要它在历史模式下工作 因为哈希会介入我正在执行的基于 OAuth 的身份验证过程的一部分的重定向 当路由处于哈希模式时 可以像 PWA 一样正常加载 一旦我将模式更改为
  • 如何在ngDialog中加载数据

    我有一个要求 我需要从 jsp 页面打开一个对话框 并且在打开该对话框时 我需要从服务器加载一些预填充的数据 使用 AJAX 调用 如果我在打开对话框之前进行 AJAX 调用 我会获取数据 但对话框会像新页面一样加载 如果我尝试在新控制器中