3

angularディレクティブを使用して水平iScrollを実装しようとしています。

これが私のディレクティブコードです。

link: function(scope, elem, attrs) {
        scope.winWidth = window.innerWidth;
        scope.iScrollWidth = scope.winWidth *8.5 +'px';
        jQuery(angular.element(attrs.thelist)).css({'width':scope.iScrollWidth}); 

        var k_videoScroll = new iScroll(angular.element(attrs.scrollwrap),{
            snap: true,
            bounce: false,
            checkDOMChanges: false,
            momentum: false,
            hScrollbar: false,
            vScrollbar: false,
            overflow: false
        });

attrs.scrollwrapに関連するIDを持つhtmlページにdivタグがあります

<div id="videolist" class="videoScrollWrap" options="#thelist" wrapper="#deal-wrap"   scrollwrap="#videoReviewsWrap">    
   <div id="videoReviewsWrap">
      <ul id="thelist">
         <li id='deal-wrap' ng-repeat="video in videoList" videoList='video'></li>
      </ul>
    </div>
</div>

私が立ち往生している問題は、「未定義のプロパティ「オーバーフロー」を設定できません」です。

TypeError: Cannot set property 'overflow' of undefined
at Object.iScroll (http://localhost/swordfish/web/js/lib/iscroll.js:89:31)
at setScroll (http://localhost/swordfish/web/js/directives/d-product-details.js:395:33)
at link (http://localhost/swordfish/web/js/directives/d-product-details.js:405:13)
at o (http://localhost/swordfish/web/js/lib/angular/angular.min.js:42:187)
at e (http://localhost/swordfish/web/js/lib/angular/angular.min.js:38:28)
at http://localhost/swordfish/web/js/lib/angular/angular.min.js:37:118
at <error: illegal access>
at Object.e.$broadcast (http://localhost/swordfish/web/js/lib/angular/angular.min.js:88:517)
at http://localhost/swordfish/web/js/lib/angular/angular.min.js:81:85
at i (http://localhost/swordfish/web/js/lib/angular/angular.min.js:76:207) <div id="videolist" class="videoScrollWrap ng-isolate-scope ng-scope" options="#thelist" wrapper="#deal-wrap" scrollwrap="#videoReviewsWrap"> angular.min.js:60

(匿名関数)

問題は何ですか?新しい iScroll を定義するための構文が正しくないようです。それを行う正しい方法は何ですか?

前もって感謝します!

4

1 に答える 1

1

私は問題を理解しました。これは、(attrs.scrollwrap) を取得しようとすると、実際にオブジェクトを再調整しているためです。しかし、iScroll ライブラリは、オブジェクトの子要素を直接取得し、そのオブジェクトのスタイル プロパティを設定しようとしています。(attrs.scrollwrap[0]) を使用して div 要素にアクセスしようとすると、問題は解決します。

于 2013-04-29T14:41:13.730 に答える