无法从指令

问题描述:

更新控制器变量我有一个指令:无法从指令

app.directive('hideButton', function() { 
    return { 
     restrict: "A", 
     scope: { 
      init: '=' 
     }, 
     replace : true, 
     link: function(scope, elem, attrs) { 
      if(scope.init) { 
       elem.css('display', 'none'); 
       scope.init = false; 
      } 

      elem.on('click', function() { 
       elem.css('display', 'none'); 
      }); 
     } 
    } 
}); 

这里,init是控制器变量。

现在在指令中我已经设置了scope.init = false但这个改变没有反映到控制器中。

这是AngularJS中的一个常见问题,因为这只是不直观的。

如果您将原始类型绑定到您的指令(init类型为boolean,在这种情况下),绑定会丢失。尝试将其包裹到对象中

{ value: true } 

在您的控制器中。

你的指令现在变成

if (scope.init.value) { 
    elem.css('display', 'none'); 
    scope.init = false; 
} 

你的问题也回答这里:https://*.com/a/29265539/537738