2016-05-10 4 views
2
function prMySelects() { 
    var ddo = { 
    restrict: 'E', 
    templateUrl: 'template.html', 
    require: '?ngModel', 
    scope: { 
     ngModel: '=' 
    }, 
    controller: prMySelectsController, 
    controllerAs: 'vm', 
    bindToController: true 
    }; 
    return ddo; 
} 

function prMySelectsController($locale) { 
    ... 
} 

からngModelにアクセスすることができますどのように私は$ setValidity(「一部」、false)を示します。ディレクティブコントローラ内のいくつかのチェックを行うと、ngModelを設定する必要がありますが、ngModel is not definedエラーを取得します。 ngModelを注入しても役に立たなかった...私はディレクティブコントローラ

PS linkにアクセスできますが、controllerの指示でngModelコントローラにアクセスできますか?

+0

[NgModelControllerをディレクティブコントローラに渡すにはどうすればいいですか?](http://stackoverflow.com/questions/27786854/how-to-pass-ngmodelcontroller-to-directive-controller) – fracz

答えて

2

この種の機能は、ディレクティブのリンク機能内で行うのが最適です。この場合

function prMySelects() { 
    return { 
     restrict: 'E', 
     require: '?ngModel', 
     link: function(scope, element, attributes, ngModel) { 
      scope.theModel = ngModel; 
     }, 
     controller: function() { 
      var vm = this; 
      vm.theModel.$setViewValue... 
     } 
    } 
} 

、あなたが実際にngModelコントローラにフックを取得し、そのあなたが実際にスコープにそれをspecifiyすることを必要とされていません。

+2

はい、私は'link'でアクセスすることはできますが、' controller'ディレクティブでngModelコントローラにアクセスすることは可能ですか? –

関連する問題