Angular Js延迟加载解决方案

时间:2015-07-29 11:43:21

标签: javascript asp.net angularjs updatepanel

我的母版页中有一个更新面板,其中包含子页面的占位符。

Parent.master

   <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server" EnableViewState="true" ViewStateMode="Enabled">
                        <ContentTemplate>
                            <asp:ContentPlaceHolder ID="CPH" runat="server"  >
                            </asp:ContentPlaceHolder>
                        </ContentTemplate>
                        <Triggers>
                            <asp:AsyncPostBackTrigger ControlID="ddlClass" EventName="SelectedIndexChanged" />
                            <asp:AsyncPostBackTrigger ControlID="drpSubjects" EventName="SelectedIndexChanged" />
                        </Triggers>
    </asp:UpdatePanel>

在子页面中我使用角度但问题是首次加载我的范围是正确的,但如果我正在更新某些内容,我的范围将被销毁。 我正在从角度控制器调用一个DOM元素,该元素在范围之外,它会抛出异常。

<input type="checkbox" name="something" value="something" onchange="updateCheckBox(this)">

    function updateCheckBox(obj) { 
        angular.element('[ng-controller=ctrl]').scope().UpdateCheckBox(obj); 
    }

所以为了克服这个问题,我在document.ready事件中使用了以下代码。

var mytempScope = angular.element('[ng-controller=ctrl]').scope();

因此我更新的updateCheckBox函数是

    function updateCheckBox() { 
       if (angular.element('[ng-controller=ctrl]').scope() == undefined)    
           mytempScope.UpdateCheckBox(); 
      else 
          angular.element('[ng-controller=ctrl]').scope().UpdateCheckBox(); 
}

这是完美的工作但我想知道是否正确的方法忽略角度的懒惰负载问题?

还有其他解决办法。

0 个答案:

没有答案