相关疑难解决方法(0)

AngularJS:在调用$ scope时防止错误$ digest正在进行中.$ apply()

我发现自从以角度构建应用程序后,我需要手动将页面更新到我的范围.

我知道这样做的唯一方法是$apply()从我的控制器和指令的范围调用.这个问题是它不断向控制台抛出一个错误:

错误:$ digest已在进行中

有谁知道如何避免这个错误或以不同的方式实现相同的事情?

angularjs angularjs-scope angularjs-digest

832
推荐指数
14
解决办法
42万
查看次数

根据条件重定向到某个路由

我正在编写一个小型AngularJS应用程序,它具有登录视图和主视图,配置如下:

$routeProvider
 .when('/main' , {templateUrl: 'partials/main.html',  controller: MainController})
 .when('/login', {templateUrl: 'partials/login.html', controller: LoginController})
 .otherwise({redirectTo: '/login'});
Run Code Online (Sandbox Code Playgroud)

我的LoginController检查用户/传递组合并在$ rootScope上设置一个反映这个的属性:

function LoginController($scope, $location, $rootScope) {
 $scope.attemptLogin = function() {
   if ( $scope.username == $scope.password ) { // test
        $rootScope.loggedUser = $scope.username;
        $location.path( "/main" );
    } else {
        $scope.loginError = "Invalid user/pass.";
    }
}
Run Code Online (Sandbox Code Playgroud)

一切正常,但如果我访问http://localhost/#/main我最终绕过登录屏幕.我想写一些类似"每当路由改变时,如果$ rootScope.loggedUser为null然后重定向到/ login"

...

......等一下 我能以某种方式听路线变化吗?无论如何我会发布这个问题并继续寻找.

angularjs ngroute

488
推荐指数
8
解决办法
45万
查看次数

如何向AngularJS表单添加自定义验证?

我有一个带有输入字段和验证设置的表单,通过添加required属性等.但对于某些领域,我需要做一些额外的验证.我如何"点击" FormController控件的验证?

自定义验证可能类似于"如果填写了这3个字段,则此字段是必需的,需要以特定方式进行格式化".

有一种方法,FormController.$setValidity但看起来不像公共API,所以我宁愿不使用它.创建一个自定义指令并使用NgModelController看起来像另一个选项,但基本上要求我为每个自定义验证规则创建一个指令,这是我不想要的.

实际上,将控制器中的字段标记为无效(同时保持FormController同步)可能是我在最简单的场景中完成工作所需要的,但我不知道该怎么做.

angularjs

275
推荐指数
9
解决办法
29万
查看次数

AngularJS及其使用Dollar Variables

有没有人知道在angularJS中使用美元方法和变量背后的原因是指示angularJS在消化过程中避免检查这些值?所以,如果角度遇到$scope.$value$scope.value,然后它会避免检查前,因为它与它的变量名称美元字符前缀?

angularjs

127
推荐指数
6
解决办法
6万
查看次数

$$在角度中的含义

如果$代表Angular中的内置服务,这个$$前缀是什么意思?我只是在Console中检查范围并看到了$$watchers, $$listeners等等

angularjs angularjs-scope

3
推荐指数
1
解决办法
5856
查看次数