Tag: angularjs

AngularJS:嵌套循环内的ng-repeat跟踪$ index

我需要第二个$索引我的嵌套ng重复循环。 我应该怎样和在哪里放? AngularJS网站说 使用ngInit可以为这些属性创build别名。 例如,当嵌套ngRepeats时,这可能是有用的。 <div ng-repeat="person in persons track by $index"> <div ng-repeat="something in array track by $index2"> <!– where to init this and how to manage it?–> 如果我再次使用$索引,它似乎工作,但我不知道这是正确的事情? 我确信有一个简单而正确的方法,我只是无法find一个例子。 谢谢

在“ng-repeat”迭代中使用AngularJs“ng-style”

我正在使用ng-style来根据它们的值有条件地设置表中数据元素的颜色。 每一行数据都是用ng重复生成的。 所以我有这样的东西: <tr ng-repeat="payment in payments"> <td ng-style="set_color({{payment}})">{{payment.number}}</td> 和我的控制器中的一个function,做如下: $scope.set_color = function (payment) { if (payment.number > 50) { return '{color: red}' } } 我尝试了一些不同的东西。 甚至将颜色设置为支付对象中的数据属性,但是看起来我无法获得ng-style来处理来自数据绑定的数据,有没有人知道我能做到这一点的方法? 谢谢。

我怎样才能让angularjs ngChange处理程序只有当用户input完成时才被调用

我有一个input字段,我想要应用ngChange的变体。 input字段是与ajax调用的绑定,当用户改变input时,服务器端将处理数据,但是,我不想太频繁地调用这个调用。 假设用户想要input一个真正的string,我只想在用户完成他即将input的单词之后才能进行呼叫。 不过,我不想使用模糊等事件。 什么是更好的方式来实现这个,而不是setTimeout ?

同时使用jQuery timeago或者momentjs和AngularJS

我想用timeago插件使date看起来更好。 问题是这些date是通过dynamic从REST的AngularJS获取。 所以,当我将这个jQuery插件附加到我的页面时,它不会处理它。 那么,如何做得更好呢? 如果可能的话,我会很乐意运行没有jQuery。

ng-repeat指定一个起始索引

我如何指定一个ng-repeat指令要开始而不是零的索引? 我有一组结果,我只需要指定一个不同于零的开始的结果。

ng-maxlength拧了我的模型

我试图做一个简单的textarea与“这么多字符剩余”与validation。 当我使用ng-maxlength来validation我的表单时,只要长度达到最大长度,它就会重置我的帐户。 这是PLUNK任何解决方法? <body ng-controller="MainCtrl"> <div ng-form="noteForm"> <textarea ng-maxlength="15" ng-model="result"></textarea> <p>{{15 – result.length}} chars remaining</p> <button ng-disabled="!noteForm.$valid">Submit</button> </div> </body>

我们什么时候应该使用伪指令的编译函数的preLink?

angularjs指令的compilefunction有两个function: preLink和postLink 。 预链接function 在子元素链接之前执行。 由于编译器链接函数将无法find正确的链接元素,因此不安全地进行DOM转换。 后链接function 子元素链接后执行。 在后链接function中做DOM转换是安全的。 它告诉我们不应该在preLink做什么,我想知道什么时候应该使用preLink ? 大部分时间我只是使用postLink 。 有什么情况需要使用吗?

等价于jQuery的$ .map?

我正在从依靠jQuery过渡到在AngularJS中构build应用程序。 在许多地方build议不要混用jQuery和Angular代码。 我想念的一件事是数组的jQuery $ .map函数。 我知道这可以重新编写使用本地JavaScript 映射函数 ,但是这并不是在所有的浏览器(特别是,IE <V9)中实现。 那么,是否有一个angular的等价物,或者我应该回到写作for (var x = 0; x < foo; x += 1) {…}所以我可以停止包括jQuery? 更新有时候知道要search什么是你所需要的。 贝吉说,“寻找polyfills”。 这里有一个参考指南(来自Modernizr工作人员)的一些资源,用于在旧版浏览器上编写现代代码: HTML5跨浏览器Polyfills

Angularjs ng-click:如何获得这个数据?

比方说,我有这个项目在angular度ng-click事件的列表中。 <a data-id='102' ng-click='delete()'>Delete</a> 那么如何获得数据/信息呢? $scope.delete = function() { var id = $(this).attr('data-id'); console.log(id); // I want to get 102 as the result if (confirm('Are you sure to delete?')) { $('#contactsGrid tr[data-id="' + id + '"]').hide('slow'); } };

AngularJS条件ng-disabled不能重新启用

给定一个使用ng-disabled="truthy_scope_variable"的有条件禁用的文本input字段,AngularJS在范围variables第一次被伪造时禁用该字段,但是在随后的变化中不启用它。 因此,该领域仍然残疾。 我只能假设出了问题,但是控制台日志是空的。 truthy范围variables绑定到一个单选button模型,我甚$watch可以$watch它的变化,但input字段的ng-disabled没有按预期工作。 我已经手动尝试调用$apply ,但它看起来像Angular触发DOM更改。 在控制器中: $scope.new_account = true 单选button: <input type="radio" ng-model="new_account" name="register" id="radio_new_account" value="true" /> <input type="radio" ng-model="new_account" name="register" id="radio_existing_account" value="false" /> 有条件禁用的input字段: <input type="password" ng-disabled="new_account" id="login-password" name="password" ng-model="password" /> 如果我最初设置$scope.new_account = false ,该字段呈现禁用,但从来没有重新启用。 为什么发生这种情况?