相关疑难解决方法(0)

dom完成渲染后如何运行指令?

我有一个看似简单的问题,没有明显的(通过阅读Angular JS文档)解决方案.

我有一个Angular JS指令,它根据其他DOM元素的高度进行一些计算,以定义DOM中容器的高度.

类似于此的东西在指令内部发生:

return function(scope, element, attrs) {
    $('.main').height( $('.site-header').height() -  $('.site-footer').height() );
}
Run Code Online (Sandbox Code Playgroud)

问题是,当指令运行时,$('site-header')无法找到,返回一个空数组而不是我需要的jQuery包装DOM元素.

是否有我可以在我的指令中使用的回调只在DOM加载后运行,我可以通过正常的jQuery选择器样式查询访问其他DOM元素?

jquery dom callback document-ready angularjs

115
推荐指数
5
解决办法
13万
查看次数

在angularjs $ routeProvider中动态加载控制器

我目前有一个内置路由的AngularJS应用程序,它与静态controller属性赋值完美配合.但我真正想做的是动态分配不同路径的控制器:

$routeProvider
 .when("/Dashboards/:dashboardName",{
    templateUrl:function(params) {
                 return "Dashboards/" + params.dashboardName;
                //some ASP.NET MVC calls to return partial views (this part works)
        }
  })
Run Code Online (Sandbox Code Playgroud)

我想做的是在controller这里对我的财产做同样的事情,比如:

$routeProvider
 .when("/Dashboards/:dashboardName",{
       templateUrl:function(params) {
             return "Dashboards/" + params.dashboardName;
            //some ASP.NET MVC calls to return partial views (this part works)
           },
       controller: function(params) {
             return params.dashboardName+"Controller"; (this part DOESN'T work)
           }
  })
Run Code Online (Sandbox Code Playgroud)

但似乎我得到一个错误说paramsProvider找不到

那么有什么方法可以在路由配置中动态加载我的控制器功能名称?

javascript angularjs angularjs-routing

21
推荐指数
2
解决办法
2万
查看次数

AngularJS应用程序初始化之前的$ http请求?

为了确定用户的会话是否经过身份验证,我需要在加载第一个路由之前向服务器发出$ http请求.在加载每个路由之前,身份验证服务会检查用户的状态以及路由所需的访问级别,如果用户未针对该路由进行身份验证,则会重定向到登录页面.然而,当第一次加载应用程序时,它不知道用户,因此即使他们有经过身份验证的会话,它也将始终重定向到登录页面.所以为了解决这个问题,我试图向服务器请求用户状态作为应用程序初始化的一部分.问题是显然$ http调用是异步的,那么在请求完成之前我如何阻止应用程序运行?

我对Angular和前端开发很新,所以我的问题可能是对javascript而不是Angular的误解.

javascript angularjs

19
推荐指数
1
解决办法
1万
查看次数