无法从Angular Controller访问表单

时间:2016-12-28 23:06:02

标签: angularjs

当尝试从控制器内部访问表单字段的$ valid属性时,我得到“无法访问$ undefined的有效”。以下是基于SO上的其他答案而尝试的内容,但无济于事:

  1. 使用控制器 - 我在我的路线中已经使用了控制器,但为了更好的衡量,我在我的容器DIV中添加了一个ng-controller =“TestCtrl as testCtrl”。
  2. 尝试ng-init,传递范围 - 我在表单标签中添加了一个ng-init(ng-init = testFunction(this),它调用一个控制器函数来设置一个名为formScope的作用域的属性(如下所示: AngularJs can't access form object in controller ($scope)
  3. 在控制器中尝试范围= {}
  4. 我现在还记不起其他一些建议。
  5. 对我来说,我的要求很简单: 当字段加载(控制器加载模型数据)时,我们需要:

    1. 在字段旁边显示相应的验证字形。
    2. 当字段的有效性发生变化时,字形需要相应更改
    3. 图标:
      当$ valid = false时,使用glyphicon-remove
      当$ valid = true时,使用glyphicon-ok
      当$ valid = null或undefined(可能?)时,使用glyphicon预警-标志
    4. 能够将有效性传递给指令(将来使用)
    5. 请参阅以下内容:https://embed.plnkr.co/XXFM6Mtt1KnSci5yagTd/

      感谢任何帮助或不同的方法。这是踢我的屁股。感谢

1 个答案:

答案 0 :(得分:2)

替换

self.sexValid = testForm.sex.$valid;

通过

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

也就是说,为什么要在控制器的字段中复制该信息,而不是简单地使用

testCtrl.testForm.sex.$valid

直接在视图中?