问题标签 [angular-ui-modal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
css - 打开 Angular UI Modal 时强制重新计算 CSS
我正在使用 Angular UI 在网站上包含模态窗口,每次单击打开模态窗口时,在将 HTML 注入 DOM 之前都会有明显的延迟。
我尝试了一切以找出延迟的来源,我将模板放在缓存中,因此它不会从 ajax 请求中加载它。我将计时器放在开发工具控制台等中,最终发现由于打开模式时“重新计算样式”而延迟了大约 200 毫秒。但是,此时模态本身只有 3 个 HTML 标记和 2 个单词,因此不会导致延迟。
然后我意识到它正在重新计算和重新绘制整个页面,因为模式绝对位于页面上方。页面本身很长,包含很多重复的元素,所以需要重绘。
我不能在这里或在小提琴中轻易重复它,但基本上它是一个非常长的页面,包含大量 HTML,并且模态本身是由 Angular UI 在结束正文标记之前注入的。模态本身就是 position:absolute; 顶部:0;对:0;底部:0;左:0;填满屏幕。
我已经在模式和页面内容上尝试了 translateZ(0) 技巧,并且我尝试过 position:fixed 而不是 absolute。如果没有 CHrome 尝试强制重新计算整个页面上的样式,我似乎无法找到一种覆盖模式的方法。
任何想法都将不胜感激。
angularjs - 如何从父父范围获取价值?
在一页上,我正在做这样的事情:
每个InnerCommunicationTopic都有一个 InnerCommunicationMessage(s) 列表。
该按钮显示了一个模式,我想在其中显示 InnerCommunicationTopic 中的所有 InnerCommunicationMessage(s)。我只是不知道如何做到这一点。
我在这里调用模态:
我在模态中尝试过这样的事情:
我知道这是错误的,id根本无法工作,但我真的不知道,我已经为此搜索了很多。先感谢您!
javascript - 带有 UI 模态的 Angular UI 路由器
SO上的这个问题有一些变化,并且已经在网络上流传,但它们有点不同并且没有确凿的答案。
基本上,我想在打开模式时更改 UI 路由器状态。然后,我希望发生两件事......
A)如果用户点击后退按钮,我希望模式被解除并且 URL 返回到以前的状态但不重新加载以前的状态控制器等(我只是希望覆盖和模式被删除,因为以前的状态已经在覆盖层下方,并且可能有一个用户正在填写的表单)/
B)如果用户关闭了我希望同样发生的模式,则 URL 应更改回前一个(模式可能已从任何地方打开,因此我们无法硬编码它将返回的状态)并且模态应该关闭。
(A) 使用这段代码几乎可以解决...
但是即使在当前弹出窗口的顶部打开另一个弹出窗口,这也会关闭模式(因为它不知道我们是向前还是向后移动)。基本上我们想说“用户是否点击了后退按钮或状态是否已转换为之前的状态,如果是,则关闭顶部模式)。
(B) 我不知道如何解决。当模态框被关闭时,我们可以强制将状态更改回之前的状态(如果我们知道之前的状态是什么),但是上面的 (A) 代码将被触发并可能从堆栈中删除另一个模态框。此外,先前的状态将被重新启动。基本上,我们只想在模式关闭时返回上一个 URL,但不进行完整的状态更改,如果这有意义吗?
就像我说的那样,那里有一些半解决方案,但似乎没有任何东西可以处理上述情况。有人有什么想法吗?
javascript - 模态内的角度路线
我有 2 条路线:
他们都工作正常!
我想要的是能够从“/list/:class”路由呈现模式窗口中的其中一个路由的“editortemplate”。
在我的“listController”中,我有模式打开功能:
模板渲染得很好,但我不知道如何将模板所需的 class 和 id 变量传递给它(如其路线所示)。
我尝试使用 variables(class== var b, id== var a) 而不是模板 url 定义路由,但没有运气:
javascript - Angular-UI 路由器,如果来自 /modal 路由,则不刷新
是否可以全局配置一些东西,以便每次输入新路由时检查前一个路由是否以 /modal 开头,如果是,则不刷新控制器,只需从堆栈中删除顶部模式?
我想我可以通过 reloadOnSearch 和使用搜索参数来实现这一点,但是我必须设置整个站点上的每条路由来设置 reloadOnSearch,因为站点上的任何路由都可以启动模式,所以这是不可取的。
任何帮助将不胜感激。
angularjs - Angular crud 对话框一种通用或独特的
我开始构建一个 AngularJs 应用程序。我有很多带有 add\edit 操作的对话框。我的问题是我是否应该为每个操作构建函数/控制器/服务,但只有不同的处理程序具有相同的 html?还是我应该以通用方式(以及许多 if 案例)来做?第一个选项的成本是多少?
angularjs - Angular UI Bootstrap 模式:[$injector:unpr] 未知提供者:$uibModalInstanceProvider
这有点奇怪。当我在网上搜索这个问题时,我看到很多页面的谷歌结果和 SO 解决方案......但似乎没有一个有效!
简而言之,我正在尝试实现 AngularUI Bootstrap Modal。我不断收到以下错误:
错误:[$injector:unpr] 未知提供者:$uibModalInstanceProvider <- $uibModalInstance <- addEntryCtrl
这是我的 HTML:
这是我的控制器:
最后,这是我的模态代码:
我尝试过的解决方案:
- 更新了 Angular Bootstrap(版本:0.14.3)和 Angular(v1.4.8)
- 将 uibModalInstance 更改为 modalInstance
- 将 $uibModalInstance 更改为 modalInstance
- 将我的 addEntryCtrl 放入我的 ModalInstance
有什么想法吗?这已经把我逼到墙上将近 2 天了。
* 编辑 *
我应该注意两点:
1) 当我从 addEntry 中删除 $uibModalInstance 作为依赖项时,我的 HTML 表单提交按钮工作得很好,表单看起来很完美。即使重定向正确发生(提交时)。问题仍然存在:模式仍然停留在屏幕上,并抛出 $uibModalInstance 未定义的错误。这是有道理的,因为我将它作为依赖项删除了,但我显然仍然需要模式在提交时关闭。
2)另外,我在我的应用程序的另一部分工作的代码几乎相同。唯一的区别是它是通过工厂工作的。否则,代码是相同的。因此,我相信我的依赖项都在那里并且版本是正确的。所以。吓坏了。奇怪的。
谢谢!
angularjs - ui-bootstrap 如何获取别名视图中的范围
我有这个代码,你应该:打开一个模式,将数据带入 angular-ui-bootstrap 正在使用的控制器中。但它没有得到选择的“项目”的结果。
在我的控制器中:
鉴于列表:
此模式打开,但不带以下内容:
模板网址:
javascript - 向 Angular js 中的控制器注入常量(模式弹出问题)
我在单击 ng 网格中的一行中的一个按钮时显示一个模态弹出窗口。因此,要在模态弹出窗口中获取一个表单,我将使用 JSON Schema 填充它,如下所示
Modal Pop Up 的 Html 是
架构被放入外部 js 文件中的常量中,如下所示:
因此,在单击一行时,ng-grid
我正在执行一个名为 edit row 的函数,它将打开弹出窗口并根据常量填写表单。
但是在这里,我对如何将常量注入控制器函数感到有些困惑。因此,模态以空白形式出现。
感谢任何帮助!