我有一个需要从主控制器调用函数的指令,但每次我尝试引用指令内部的函数都没有发生,因为它是未定义的。当我访问例如$ scope.someProp的值时,我确实得到了所需的响应,但是当我调用该函数时却没有。
其他人遇到过这个问题?有什么建议吗?
答案 0 :(得分:4)
少数事情:
在这种情况下你有3个选项
答案 1 :(得分:1)
如果您可以更改值,为什么不让控制器观察这些值并在更改时运行所需的功能?
$scope.$watch('myScopeVar', function(newValue, oldValue){
if(oldValue !== newValue){
$scope.someFunction();
}
});
我不是说这是最好的方法,但它应该有效。但请注意范围问题。如果您的指令使用隔离范围,则可能必须使用指令更改服务中的值并且控制器按上述方式监视该服务值的服务。再次,不理想,但应该工作。