无法在指令Controller上访问表单状态

时间:2016-05-03 14:13:55

标签: angularjs angularjs-directive

我正在使用Angularjs v1.2.21并且我无法在指令中访问表单状态,其他版本可以使用(我无法更改项目Angularjs版本)...我在下面创建了一个plunkr:

plunkr

.directive('testReplace', function () {
return {
  restrict: 'EA',
  replace: true,
  scope:{ 
     transaction: '=',
     isvalid: '='
  },
  templateUrl: 'modal-back.html',
    controller: function($scope) {
      console.log($scope.myForm)
    }
  };
})

2 个答案:

答案 0 :(得分:3)

使用链接功能代替控制器:http://plnkr.co/edit/EI8qVhh9pOBiEtD4koGB?p=preview

link: function(scope){
       console.log(scope.myForm)
}

答案 1 :(得分:1)

$ scope.myForm在那里,我相信这是因为你需要使用链接而不是控制器,除非你正在等待表格中发生的事情(如点击事件或其他事情)。所以尝试将其改为此

来自:

controller: function($scope){

为:

link: function($scope){

您使用链接是因为链接阶段是您实际附加数据的时间,因此在您登录时您将看到正确的信息

plunkr:http://plnkr.co/edit/eCW1lrsS5GTbmoA9JAcL?p=preview

此外,如果你想准备更多和控制器vs链接与编译,这里有一个很好的线程:AngularJS : link vs compile vs controller