被忠实地NG-初始化一个糟糕的方式设置变量鉴于无控制器(Is ng-init truely a ba

2019-10-22 18:36发布

我使用的用户界面,选择要与multuple意见创建一个复杂的页面。 对于那些不知道每个视图通过AJAX加载当用户选择一个选项卡(或在我的情况下拉)。 传统的看法有自己的控制器和HTML模板。 查看inherrit他们是在父页面的范围,而是有自己的孩子范围。

在我的情况下,一些我们的意见都完全没有控制。 他们是如此的简单,我们只需要为他们的HTML页面。 问题是,我希望他们能够切换一个布尔父页的范围配置对象,关闭对父页上的一些控制领域。 一切都已经存在,多个页面使用这些意见,我只是想扩大它们切换父的东西。

我可以通过三种方式做到这一点。 我可以在我的UI路由器使用resolve方法明确地切换视图时加载我想要的领域,但后来我不得不这样做的每个UI-路由器明确每个页面; 不冷静的代码重用。

我可以有我的UI路由器负载控制器,且当前我没有控制器,控制器可以做到这一点。 但是,这意味着手动添加一个控制器,主要是不需要我到处使用的视图,并再次不觉得自己的代码重用。

或者,我可以用NG-init进程有我的观点的明确设置在加载时我想要的值。 对我来说,这种感觉干净和最容易的,因为我还没有一个控制器。

然而,NG-init的皱起了眉头,而应该只用于所谓混叠。 有没有一种更简洁的方法,然后使用NG-INIT? 是不是真的不好有没有控制器的视图(更确切地说,他们有父控制器依然,而是一个新的视图打开时未重新加载)。

Answer 1:

你不指定控制器的路线不会改变任何东西的事实。 视图有其自身的范围,因此它可与路由控制器或与不拥有自己的范围指令(如ngInit)来操作。

在ngInit著名言论的目的

唯一的适当使用ngInit的是别名ngRepeat的特殊属性,如下面的演示看到。 除了这种情况下,你应该使用控制器,而不是ngInit对一个范围内初始化值

是让你从“HTML编程”。 而且它并没有太大的意义,因为关注点分离是没有棱角的美德之一。 从评估的HTML代码的角度的习惯属性以及它是如何使用的核心指令的方式提示您进一步藐视它。



Answer 2:

只是没有初始化的变量在所有。 NG-秀=“水木清华”,NG-如果如果“水木清华”没有定义=“水木清华”工作正常,后来ü使用更改NG点击=“水木清华=!水木清华”。



文章来源: Is ng-init truely a bad way set variable in view without controller