Skip to content Skip to sidebar Skip to footer

Bindings On Directive With Isolate Scope Not In Scope Sometimes

So I have a directive with isolate scope and a controllerAs pattern. var directive = { restrict: 'E', scope: { something: '=' }, tem

Solution 1:

Use the $onInit Life-Cycle Hook to guarantee the timing of bindings:

 function directiveController(someService) {

    var vm = this;

    ̶i̶n̶i̶t̶(̶)̶

    this.$onInit = init;

    function init() {
        return someService.getProducts()
        .then(productsReady);

        function productsReady(data) {
            vm.products = data;

           return vm.products;
        }
    }

From the Docs:

Initialization logic that relies on bindings being present should be put in the controller's $onInit() method, which is guaranteed to always be called after the bindings have been assigned.

.component('myComponent', {
  bindings: {value: '<'},
  controller: function() {
    this.$onInit = function() {
      // `this.value` will always be initialized,// regardless of the value of `preAssignBindingsEnabled`.this.doubleValue = this.value * 2;
    };
  }
})

— AngularJS Developer Guide - Migrating to V1.6 - $compile

Post a Comment for "Bindings On Directive With Isolate Scope Not In Scope Sometimes"