我在角指令中使用了多个数据报警器,它给了我一个错误的,这个数据报废了的实例数据,因为如果我删除了一个li,它就不会在指令中设置id。
directive.js
app.directive('datepicker', function () {
return {
link: function($scope, element, attrs) {
setTimeout(function() {
$("#"+attrs.id).live('focus',function(){
console.log(attrs.id);
});
});
}
}index.html
<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?
发布于 2013-02-12 16:45:43
我想您想知道什么时候可以“获取”(而不是“设置”)指令中的ID。以下是如何做到这一点:
app.directive('datepicker', function () {
return {
link: function($scope, element, attrs) {
element.bind('focus', function (){
console.log(attrs.id);
});
}
};
});发布于 2013-02-12 09:28:33
你应该看看http://docs.angularjs.org/guide/directive#Attributes。在连接阶段,还没有定义它。
此外,我不认为您需要使用ID选择器,因为您只需将事件与element附加到链接函数中。
发布于 2013-02-12 14:03:09
你看过使用AngularUI吗?然后,您可以使用JQuery传递,而不必创建自己的指令(我还添加了ui选项作为示例,以防您决定使用它)。以下是它的样子:
<input class="payment_date" ui-jq="datepicker" ui-options="{dateFormat:'dd-mm-yy'}" placeholder="Payment Date" type="text" ng-model="payment.date" />至于在上面放个身份证,我不知道你为什么需要身份证。如果您想获得选定日期的值,而不是这样做:
var myDate = $("#"+myIndex).val();你应该这么做:
var myDate = invoice.payment[myIndex].date;这就是角度的美,这里不需要使用DOM。如果你有任何问题,请告诉我,我很乐意回答。
https://stackoverflow.com/questions/14829165
复制相似问题