Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 在角坐标系中建立模态组件的正确方法_Angularjs - Fatal编程技术网

Angularjs 在角坐标系中建立模态组件的正确方法

Angularjs 在角坐标系中建立模态组件的正确方法,angularjs,Angularjs,我在jQuery中构建了一个模态组件。 我想将它集成到一个不使用jQuery的Angular应用程序中,我不想将它作为一个外部依赖项。我的意思是,我不知道该把它作为一个可以从控制器调用的东西,而不是一个指令或服务 我感到困惑的是,在Angular服务(工厂,服务,提供者)中使用DOM逻辑是一个好主意,还是我应该用&表达式生成一个指令?或者两者兼而有之 在控制器内部,我希望能够注入模态并调用方法来显示或隐藏模态并设置其内容 正确的做法是什么? 我不是在寻找代码,而是在寻找如何“正确角度”实现这一点

我在jQuery中构建了一个模态组件。
我想将它集成到一个不使用jQuery的Angular应用程序中,我不想将它作为一个外部依赖项。我的意思是,我不知道该把它作为一个可以从控制器调用的东西,而不是一个指令或服务

我感到困惑的是,在Angular服务(
工厂
服务
提供者
)中使用DOM逻辑是一个好主意,还是我应该用
&
表达式生成一个指令?或者两者兼而有之

在控制器内部,我希望能够注入
模态
并调用方法来显示或隐藏模态并设置其内容

正确的做法是什么?
我不是在寻找代码,而是在寻找如何“正确角度”实现这一点的指导


谢谢。

回答您关于角度服务中dom逻辑的问题。不,这不是一个好主意,如果你真的想一想,那就没有必要了。您需要什么:

  • 可以关闭/打开的模式
  • 可以根据单击是或取消来执行回调
对于这个简单的功能,您肯定不需要任何dom逻辑,尤其是服务中不需要任何dom逻辑

你可以使用这项服务,自己做造型,使它看起来一样。请看这张照片:

这很简单:

$modal.open({
    templateUrl: 'someTemplateOfTheModal',
    controller: SomeControllerOfTheModal,
})
有关选项,请参阅

否则,如果我们只是讨论如何在angular中集成现有的jquery内容,我仍然建议以angular的方式从头开始重建它。基本上用纯角度替换所有jquery触发器/事件功能

例如,模态可以打开或关闭,也可以有覆盖或没有覆盖。模态本身可能用于在yes而不是cancel上执行回调事件。您可能还希望使用自定义类对其进行样式设置,因此应该考虑到这一点。如果要从头开始重建,您可能需要查看以下指令:

  • ng if/ng show(可能用于显示/隐藏模态和/或 覆盖层)
  • ng类(将用于注入您可能需要的任何自定义类) 穿上你的衣服)
  • ng include(如果希望模板化模态)
  • ng单击(单击是/否/取消按钮时执行单击事件 和/或点击远离模态或覆盖)

您可以看到它可能会变得有点混乱,因此最好使用angular的$modal服务,因为它内置了所有这些功能。我认为它拥有你可能想要的所有模态,你应该设计它。当然,出于学习目的,你可能想重新发明轮子。

你可能会发现这很有帮助:谢谢,尽管咖啡脚本伤了我的眼睛。:)小心$modal服务,它与Bootstrap3的关系不太好。谢谢你的贴子,爸爸。我不想在$modal实现中使用angular ui(它不是angular的一部分),我宁愿自己做,并且理解如何做。我不清楚的是:很明显DOM侦听器将位于指令中,而显示/隐藏方法位于服务中。但是,当我从控制器调用show方法、changeModAltile或changeModalContent方法时,该指令怎么知道?它可以对title属性具有双向作用域绑定('=')。然后你甚至不需要调用函数。您可以这样做:modal.title='someTitle';你的角度会更新你的模型。此外,@NicolasMoise我已经很长时间成功地使用$modal和bootstrap 3了。我不知道你为什么这么说。