0

Durandal で Web アプリの開発を始めたばかりです。ビューモデルから関数を呼び出す方法と、ドキュメントの要素を見つけた場合、まだ添付されていないように見える理由がわかりません。

例: viewmodel.js

    define( ['libone', 'libtwo'], function () {


      $('.carousel').libone({
          expandbuttons: true,
          keyboard: true,
          mouse: true
      });

    });

ID 呼び出しカルーセルが見つからないため、view.hmtl コンテンツではなく index.html コンテンツが存在します。

何か案は?前もって感謝します

UPDATE エラーはありませんが、ビューの内容は返されません。view.html

<section> 
  <h2 data-bind="html:name"></h2> 
  <blockquote data-bind="html:descr"></blockquote> 
    <div class="carousel"> 
      <div class="carousel-sections"> 
        <div class="carousel-section"> ... some content ... </div> 
      </div> 
    </div> 
  <a id="carousel-scroll-prev" href="#"></a> 
  <a id="carousel-scroll-next" href="#"></a> 
<section> 

modelview.js

define( ['libone', 'libtwo'], function (libone, libtwo) {
  var viewattached = function(view){
    var view = $(view);
    view.find('.carousel').libone({
      expandbuttons: true,
      keyboard: true,
      mouse: true
    });
  };

  var vm = {
    attached: viewattached,
    name: 'How about we start?',
    descr: 'You have many choices to make and many roads to cross...'
  };

  return vm;
});

名前、説明、スクロールのみが表示され、カルーセル セクションは表示されません。

4

3 に答える 3

0

あなたが要求しているようにjqueryを使用してコントロールにアクセスするには、ビューの添付イベントを使用する必要があります。

define( ['libone', 'libtwo'], function (libone, libtwo) {
    var viewattached = function(view){
      var view = $(view);
      view.find('.carousel').libone({
          expandbuttons: true,
          keyboard: true,
          mouse: true
      });
    };

    var vm = {
        attached: viewattached
    };

    return vm;
});

動作する可能性のある他のものは、compsitionComplete..

于 2013-10-28T18:03:46.930 に答える
0

レンダリングの問題は、attachedの代わりにcompositionCompleteを使用して解決されました。

于 2013-10-29T15:30:45.067 に答える
0

ただし、ページを更新すると、コンポジションの完了は要素とカルーセルのバインディングをスキップし、カルーセルは機能しません。どれでも

于 2014-08-05T12:41:24.463 に答える