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