如果我有一个指令来响应作用域上特定属性的状态,并且我想在testing中更改该属性并validation它是否正确响应,那么执行此更改的最佳方法是什么? 我已经看到这两种模式: scope.$apply(function() { scope.myAttribute = true; }); 和 scope.myAttribute = true; scope.$digest(); 他们之间有什么区别,哪个更好,为什么?
使用AngularJS,我可以使用ng-pristine或ng-dirty来检测用户是否已经进入该领域。 但是,我只想在用户离开字段区域之后才进行客户端validation。 这是因为当用户进入诸如电子邮件或电话这样的领域时,他们总是会输出一个错误,直到他们input完整的电子邮件,这不是一个最佳的用户体验。 例 更新: Angular现在提供了自定义模糊事件: https : //docs.angularjs.org/api/ng/directive/ngBlur
我很好奇,如果有一种方法可以覆盖ui-bootstrap-tpls文件中的单个特定模板。 绝大多数的默认模板符合我的需求,但是有一些特定的模板需要replace,而不需要通过抓取所有默认模板并将它们连接到非tpls版本的整个过程。
我正在使用ng-options从下拉列表中select值。 我希望能够比较旧价值和新价值。 ng-change很适合抓取下拉的新值,但是怎样才能得到新值和原始值? <select ng-change="updateValue(user)" ng-model="user.id" ng-options="user.id as user.name for user in users"></select> 例如,假设我希望控制器logging“您的以前的用户名是BILL,您的当前用户名是PHILLIPE”。
我有一个相当简单的Angular应用程序,在我的开发机器上运行得很好,但是在部署它之后,出现这个错误消息(在浏览器控制台中): Uncaught Error: [$injector:unpr] http://errors.angularjs.org/undefined/$injector/unpr?p0=tProvider%20%3C-%20t%20%3C-%20%24http%20%3C-%20%24compile 除此之外没有别的消息。 它首先加载页面时发生。 我正在运行ASP.NET MVC5,Angular 1.2RC3,并通过git推送到Azure。 谷歌search没有发现任何有趣的事情。 有什么build议么? 编辑: 我正在使用TypeScript,并使用$injectvariables定义我的依赖关系,例如: export class DashboardCtrl { public static $inject = [ '$scope', '$location', 'dashboardStorage' ]; constructor( private $scope: IDashboardScope, private $location: ng.ILocationService, private storage: IDashboardStorage) { } } 我相信应该(或者打算)绕过在缩小过程中出现的局部variables重命名问题,并且可能导致这个错误。 也就是说,这显然与缩小过程有关,因为当我在我的开发机器上设置BundleTable.EnableOptimizations = true时,我可以重现它。
我有一个string,我从一个routeParam或一个指令属性或任何获得,我想创build一个基于这个范围的variables。 所以: $scope.<the_string> = "something". 但是,如果string包含一个或多个点,我想将其拆分,并实际“向下钻取”到范围中。 所以'foo.bar'应该变成$scope.foo.bar 。 这意味着简单的版本将无法正常工作! // This will not work as assigning variables like this will not "drill down" // It will assign to a variables named the exact string, dots and all. var the_string = 'life.meaning'; $scope[the_string] = 42; console.log($scope.life.meaning); // <– Nope! This is undefined. console.log($scope['life.meaning']); // <– It […]
我怎样才能在angularJS中有条件地执行ng-include? 例如,我只想包含一些东西,如果variablesx被设置为true 。 <div ng-include="/partial.html"></div>
我试图redirect到另一条路线使用: $location.path("/route"); 但由于某种原因,这是行不通的。 我使用jQuery-UI做了一个自动完成的小部件,一旦用户select了一个选项,我就从范围中调用一个函数。 我debugging它,它进入函数,但它永远不会redirect到其他路线。 当我按下一个键时,它只会改变路线。 我认为这有点奇怪,但我还没有想出如何解决这个问题。 我用了 window.location = "#/route"; 它的工作原理,但我想使用path()函数。 有谁知道为什么会发生这种情况?
我试图testing一个元素是否可见使用量angular器。 以下是元素的样子: <i class="icon-spinner icon-spin ng-hide" ng-show="saving"></i> 在Chrome控制台中,我可以使用这个jQueryselect器来testing元素是否可见: $('[ng-show=saving].icon-spin') [ <i class="icon-spinner icon-spin ng-hide" ng-show="saving"></i> ] > $('[ng-show=saving].icon-spin:visible') [] 但是,当我尝试在量angular器中执行相同的操作时,运行时出现此错误: InvalidElementStateError: invalid element state: Failed to execute 'querySelectorAll' on 'Document': '[ng-show=saving].icon-spin:visible' is not a valid selector. 为什么这是无效的? 如何使用量angular器检查可视性?
我注意到同样的问题在这里被问了几次,我试图解决它,但没有任何帮助。 我正在跟着这个教程与eggheadvideo。 但是,当我在控制器和控制器之间共享数据的部分,我不能得到它的工作。 当我用Chrome运行它时,在控制台中出现这个错误: '参数'FirstCtrl'不是一个函数,没有定义'。 我真的不知道什么是错的。 代码与本教程中的代码相同。 这里是我有的HTML代码: <!DOCTYPE html> <html ng-app> <head> <title>AngularJS Tutorials: Controllers</title> <link rel="stylesheet" href="mystyle.css"> <script src="http://code.angularjs.org/1.2.0-rc.2/angular.min.js"></script> </head> <body> <div ng-app=""> <div ng-controller="FirstCtrl"> <h1> {{data.message + " world"}}</h1> <div class="{{data.message}}"> Wrap me in a foundation component </div> </div> </div> <script type="text/javascript" src="main.js"></script> </body> </html> 这里是main.js的代码: function FirstCtrl($scope){ $scope.data = {message: "Hello"}; […]