Модуль Durandal Compose на основе условного оператора

Мне нужно использовать условие (оператор if), чтобы динамически выбирать, какое представление создавать в Durandal. Это возможно? У кого-нибудь есть пример, который мог бы помочь мне начать? Спасибо за помощь.


person Ashraf Fayad    schedule 18.04.2013    source источник
comment
Взгляните на стартовый комплект Durandal. durandaljs.com/pages/get-started   -  person Evan Larsen    schedule 19.04.2013


Ответы (2)


Вы не дали много контекста своей проблеме, так что это очень простой (непроверенный) пример.

В вашем html:

<div data-bind="compose: myModel" />

В вашем js-файле:

define(function (require) {
    var m1 = require('module1');
    var m2 = require('module2');

    var myModel;

    myModel = (1 === 1) ? m1 : m2;

    return {
        myModel : myModel
    };
});

Замените 1 === 1 на ваше условие, конечно.

person Alexander Preston    schedule 18.04.2013
comment
Спасибо, Алекс. Это то, что мне было нужно - person Ashraf Fayad; 19.04.2013

Хороший сериал Алекс! Помните, что каждое свойство в привязке compose само по себе является привязываемым, поэтому вы можете условно выбрать или изменить во время выполнения любое значение любой композиции с помощью наблюдаемых, логики или их комбинации.

person EisenbergEffect    schedule 19.04.2013
comment
Спасибо Роб! Это действительно отличная структура, которую вы создали (снова!), и мне она очень нравится. - person Alexander Preston; 20.04.2013