2016-12-28 96 views
0

当试图从控制器内访问表单字段的$ valid属性时,我得到“无法访问未定义的$ valid”。下面是我试过的基础上,上的其他答案,但无济于事:无法从角度控制器访问表单

  1. 使用controllerAs - 我已经使用controllerAs在我的路线,但良好的措施我增加了一个NG控制器=“TestCtrl为testCtrl “我的集装箱DIV。
  2. 尝试ng-init,传递作用域 - 我在表单标签中添加了ng-init(ng-init = testFunction(this),它调用一个控制器函数来设置名为formScope的作用域的属性(如下所示: AngularJs can't access form object in controller ($scope)
  3. 尝试的范围,我不能现在就记住= {}在你的控制器
  4. 其他几个建议

我的要求是,对我来说,简单: 当现场负载(控制器负载我们需要:

  1. 在字段旁边显示相应的验证图形。
  2. 当字段的有效性的变化,glyphicon需要改变相应
  3. 图标:
    当$有效=假,使用glyphicon-删除
    当$有效= TRUE,使用glyphicon-OK
    当$有效= null或undefined (?可能),使用glyphicon预警 - 标志
  4. 能够有效性传递给指令(将来使用)

请参见下面的普拉克:https://embed.plnkr.co/XXFM6Mtt1KnSci5yagTd/

任何帮助或不同方法表示赞赏。这是踢我的屁股。由于

回答

2

更换

self.sexValid = testForm.sex.$valid; 

通过

self.sexValid = self.testForm.sex.$valid; 

这就是说,为什么重复控制器的字段信息,而不是简单地使用

testCtrl.testForm.sex.$valid 

直接在视图?

+0

好点。我猜猜想这个问题。我很感激帮助 - 我在真实应用程序中尝试过它,并且它也可以在那里使用。非常感谢。 – miarde