【发布时间】:2016-04-05 21:11:08
【问题描述】:
The code at this plnkr 有一个模态框,当用户单击 “点击参加测验” 按钮时会弹出一个模态框,该按钮调用一个控制器方法,该控制器方法又调用一个模态服务。 要让 plnkr 工作,请单击代码中的任意位置并按空格键以不影响语法的方式添加空格。这将触发 plnkr 重新初始化应用程序并在您单击按钮后弹出模式。
问题是当timeLeft变量倒计时时,模态中打印的文本不会动态更新。而且,用户的按钮单击不会更新quizAnswer 变量。简而言之,模态框无法与调用控制器和视图进行交互对话。
需要对plnkr进行哪些具体的修改才能获取模态文本显示动态倒计时,以及获取模态按钮来改变$scope.quizAnswer变量的值?
另外,我一直在仔细阅读the documentation at this link。我认为答案可能与:
1.) 在open(options) 中传递的$uibModal 的options 参数包含参数scope,该参数定义了用于模态内容的父范围,以及属性bindToController,当设置为true,将scope 属性绑定到controllerAs 定义的特定控制器。
2.) open(options) 方法返回一个模态实例,其中包括close(result) 和dismiss(reason)。
我怀疑解决方案在于这些方法和参数,但我正在寻找好的例子,希望有经验的人来看看这个问题。
注意:此问题的解决方案出现在已接受答案下方的 cmets 中,尤其是指向另一个帖子的链接,其中包含 2 行代码,用于将模式按钮单击的结果发送回父控制器。
【问题讨论】:
-
我不认为这会是罪魁祸首,但很快你就会看到
$scope.$digst();,这是一个错字。话虽如此,您不需要在$interval中调用摘要 -
@dman2306 谢谢。此外,简单地修复错字会导致 plnkr 重新初始化,从而使模态再次工作。由于某种原因,模态按钮在一段时间后不会产生模态,除非您通过键入一两个字符来触发应用程序的重新初始化。还有其他建议吗?
-
发布大量与问题无关的代码并且不能正常工作不是好的做法。
-
@PetrAveryanov 根据上面的评论,plnkr 在您触发重启时起作用,例如将
digst()更改为digest()。此外,如果您认为发布的代码的某些方面不相关,请提出具体的编辑建议,我会很乐意审查它们以改进 OP。我刚刚在 OP 末尾添加了一些内容,显示了一个文档链接,其中包含我发现的可能相关内容的摘要。 -
@PetrAveryanov 我还在 OP 顶部添加了一个粗体注释,解释了如何通过创建空格来启动模式弹出窗口。我认为这与
modalexists变量在应用程序重新初始化时重新设置为 false 有关。
标签: javascript angularjs angular-ui-bootstrap angular-ui angular-bootstrap