$ viewContentLoaded没有触发

Mik*_*ras 25 javascript jquery angularjs

$viewContentLoaded永远不会在我的Angular控制器中触发.下列:

function MyController($scope)
{
    $scope.$on('$viewContentLoaded', function()
    {
        alert("blah");
    });
}
Run Code Online (Sandbox Code Playgroud)

永远不会遇到断点,也不会弹出警报.我认为这是非常标准的使用,所以我不确定它是什么,但它肯定不会解雇.控制器中的其他所有内容都表现正常.

什么会导致这个?

Cod*_*ide 41

试试这个:

  function MyController($scope)
    {
        $scope.$watch('$viewContentLoaded', function()
        {
            alert("blah");
        });
    }
Run Code Online (Sandbox Code Playgroud)

  • 这不起作用.尚未使用css应用DOM.我必须在`$ timeout(fn,0)`中包装`alert('blah')`来获得一个完全渲染的页面.视图加载尚未被角度解析. (5认同)
  • chovy,是的.取决于你想要做什么.你可能不得不这样做,而是如果你想等待CSS加载等$ $范围腕表("$ viewContentLoaded",函数(){$超时(函数(){警报("等等等等");}, 500);}); (2认同)

dnc*_*253 25

根据你上面的评论,听起来你有这样的事情:

<ng-view>
   <div ng-controller="MyController"></div>
</ng-view>
Run Code Online (Sandbox Code Playgroud)

我不知道在NG-view标记会做什么样的内容,但$viewContentLoaded发射从NG-视图范围.这意味着,它只是从它上升ng-view,因此你的控制器永远不会捕获它.

  • 是的,只是想出了自己,当控制器在ng-view之外时确实有效.原来我想要的是includeContentLoaded.谢谢! (4认同)