如何使用modal angular ui将指令范围传播到父作用域?

时间:2014-02-28 17:27:57

标签: angularjs binding scope modal-dialog angular-ui

我阅读了很多文章和AngularJS文档,但我找不到任何方法将我的指令范围修改传播到我的模态控制器。

以下是更简单的上下文版本:

  • Angular-UI模式应包含通过Angular指令
  • 的textarea
  • 用户可以输入一些文字
  • 该指令应该捕获文本并应用复杂的转换(这不是问题,这就是我向您发送更简单版本的原因;))
  • 模式应显示这些转换并等待用户关闭
  • 该指令应修改模态控制器范围以发送文本转换

我能够从模态控制器中检索模型,在我的指令中更改它,但是当更新父范围时,我总是得到默认的模型值。

我试图使用继承或隔离的范围,但我看不出我错过了什么。 有人应该帮我吗?

这是一个非常详细的计划员:http://plnkr.co/edit/t3ecXakeJMlttQkj9GLM?p=preview

重现问题:

  1. 点击“打开模态”按钮
  2. 模态打开并显示默认模型值“AAA”
  3. 输入“BBB”,模态显示“BBB”(指令范围)
  4. 点击“关闭”按钮
  5. 主Ctrl仍显示“AAA”值
  6. 感谢您的帮助

    t00f

1 个答案:

答案 0 :(得分:4)

您应该将“sub.model”传递给您的模型范围 这是一个工作的plunkr http://plnkr.co/edit/vXmgbVdYGrxbxYTIZVUU?p=preview

你会在模态控制器中看到,而不是直接使用$ scope.model ='AAA'作为字符串我使用$ scope.model = {data:'AAA'}我直接将model.data传递给我 - modal.html中的指令

您将在此answer

中获得更多解释

希望它能帮到你