首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在角指令中使用多个数据报警器

在角指令中使用多个数据报警器
EN

Stack Overflow用户
提问于 2013-02-12 09:21:06
回答 3查看 3.1K关注 0票数 4

我在角指令中使用了多个数据报警器,它给了我一个错误的,这个数据报废了的实例数据,因为如果我删除了一个li,它就不会在指令中设置id。

directive.js

代码语言:javascript
运行
复制
app.directive('datepicker', function () {
  return {
    link: function($scope, element, attrs) {
    setTimeout(function() {
            $("#"+attrs.id).live('focus',function(){
                console.log(attrs.id);
             });
     });
   }
}

index.html

代码语言:javascript
运行
复制
<tr ng-repeat="payment in invoice.payment" id="payment">
    <td>
        <input class="payment_date" id="{{$index}}" placeholder="Payment Date" type="text" ng-model="payment.date" datepicker/>
        <br />
    </td>
</tr>

如何在directive.js中设置ID?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-12 16:45:43

我想您想知道什么时候可以“获取”(而不是“设置”)指令中的ID。以下是如何做到这一点:

代码语言:javascript
运行
复制
app.directive('datepicker', function () {
  return {
    link: function($scope, element, attrs) {
      element.bind('focus', function (){
        console.log(attrs.id);
      });
    }
  };
});
票数 1
EN

Stack Overflow用户

发布于 2013-02-12 09:28:33

你应该看看http://docs.angularjs.org/guide/directive#Attributes。在连接阶段,还没有定义它。

此外,我不认为您需要使用ID选择器,因为您只需将事件与element附加到链接函数中。

票数 0
EN

Stack Overflow用户

发布于 2013-02-12 14:03:09

你看过使用AngularUI吗?然后,您可以使用JQuery传递,而不必创建自己的指令(我还添加了ui选项作为示例,以防您决定使用它)。以下是它的样子:

代码语言:javascript
运行
复制
<input class="payment_date" ui-jq="datepicker" ui-options="{dateFormat:'dd-mm-yy'}" placeholder="Payment Date" type="text" ng-model="payment.date" />

至于在上面放个身份证,我不知道你为什么需要身份证。如果您想获得选定日期的值,而不是这样做:

代码语言:javascript
运行
复制
var myDate = $("#"+myIndex).val();

你应该这么做:

代码语言:javascript
运行
复制
var myDate = invoice.payment[myIndex].date;

这就是角度的美,这里不需要使用DOM。如果你有任何问题,请告诉我,我很乐意回答。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14829165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档