Angularjs 在Angular中为小部件使用指令?
AngularJS中是否应该使用指令来实现小部件或控制器/服务?当谈到一个小部件时,我想到的是一个UI控件,您可以通过控制器与之交互,例如对话框、树、网格、图表Angularjs 在Angular中为小部件使用指令?,angularjs,Angularjs,AngularJS中是否应该使用指令来实现小部件或控制器/服务?当谈到一个小部件时,我想到的是一个UI控件,您可以通过控制器与之交互,例如对话框、树、网格、图表 例如,如果我要创建一个对话框小部件,我希望调用小部件上的show()函数来显示对话框。使用指令似乎不可能做到这一点。我看到在指令监视的根作用域上使用了一个变量,例如“showDialog”,以解决这个问题。在这种情况下,它们使用服务来实现对话框。大多数情况下,指令用作HTML视图的模板 指令可防止代码重复,并使HTML更加清晰和易于维护
例如,如果我要创建一个对话框小部件,我希望调用小部件上的show()函数来显示对话框。使用指令似乎不可能做到这一点。我看到在指令监视的根作用域上使用了一个变量,例如“showDialog”,以解决这个问题。在这种情况下,它们使用服务来实现对话框。大多数情况下,指令用作HTML视图的模板 指令可防止代码重复,并使HTML更加清晰和易于维护 正如我所知,您必须创建类似于“指针”的标记或类来将指令与DOM绑定 根据使用模板的对话框实现,您只能使用服务和单独的控制器 看一看
您不能在指令中实现对话框。是的,指令可以做到这一点,您可以使用双向绑定传入要用于确定HTML是否可见的表达式 调整你的想法:不要用“你可以通过控制器与之交互的UI控件”来思考MVC,而要引入“模型”。控制器可以通过设置作用域上的值来更改模型,视图处理为给定模型显示的HTML。控制器不应通过直接操纵DOM与HTML交互 在标记中,您可能有:
<modal-dialog show="showPopup">
我最终使用了一个服务来创建对话框,因为这样使用现有代码要容易得多。这可能行得通,但我没有时间公平对待。
<modal-dialog ng-show="showPopup">