【问题标题】:Get dom element in angular directive using jquery find使用jquery find获取角度指令中的dom元素
【发布时间】:2016-04-07 07:17:03
【问题描述】:

如果我检查元素 anchor 标记存在于 dom 中,但无法使用 jquery.find() 获取它,它会在控制台中返回长度 0,因此我无法在其上初始化 angular xeditable元素。

angular.module('built.objects')
.controller('listCtrl', listCtrl)
.directive('objectConfigListItem', function(Relay, Modal) {
    return {
      template: oCTmpl,
      restrict: 'A',
      replace:true,
      scope: {
        column: "=",
        gridItem: "="
      },
      link: function(scope, elem, attrs) {      
        var eItem = $(elem).find('.js-editable-item');
        <!-- console.log(eItem.length) -->
        $timeout(function() {
          initEditables();
        },0)
   
        function initEditables() {
          for (var i = 0; i < eItem.length; i++) {
            initialize(eItem.eq(i))
          };
        }
       
        function initialize(dom) {
          var self   = this;
          var type   = dom.attr("data-type");
          var name   = dom.attr("data-name");
          var source = dom.attr("data-select-source");
          var options = {
            validate: function(value) {
              updateObjectConfig(value,scope.column.key);
              return false;
            },
          };
          console.log("in initialize",type,name,source)
          dom.editable(options);
        }
    }
  });
<!-- oCTmpl template -->
<td>
<div class="editable-object-directive">
  <div ng-if="column.data_type==='text' || column.data_type==='number'">
    <a class="editable-item js-editable-item" href="#" data-type="{{column.data_type}}" data-value="{{colValue}}" data-name="{{colValue}}" data-title="{{column.label}}"></a>
  </div>
  <div ng-if="column.data_type==='boolean'">
    <a class="editable-item js-editable-item" href="#" data-type="select" data-select-source="boolean" data-source="{{booleanArray}}" data-name="{{colValue}}" data-title="{{column.label}}"></a>
  </div>
</div>
</td>

如何在指令中使用类 .js-editable-item 访问元素以在其上初始化 angular xeditable?

提前致谢:)

【问题讨论】:

    标签: javascript jquery angularjs x-editable


    【解决方案1】:

    认为您正在使用嵌入式 jQlite。 jQlite(angular 的“jQuery”端口)不支持按类查找。您可以在您的应用程序中包含 JQuery,或者您可以使用 QuerySelectorQuerySelectorAll 来获取您的子元素。

    link: function(scope, element, attrs) {
       console.log(element[0].querySelector('.js-editable-item'))
    }
    

    【讨论】:

      猜你喜欢
      • 2015-03-05
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多